ngOnChanges钩子不被执行
来源:6-11 本章实战

和光同尘无为
2017-06-08
form 组件:<app-stars [rating]="stock.rating" [readonly]="true"></app-stars>
star 组件:
import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core'; @Component({ selector: 'app-stars', templateUrl: './stars.component.html', styleUrls: ['./stars.component.css'] }) export class StarsComponent implements OnInit, OnChanges { private stars: Array<boolean>; @Input() private readonly: boolean; @Input() private rating: number; @Output() private ratingChange: EventEmitter<number> = new EventEmitter(); constructor() { } ngOnInit() { } ngOnChanges(changes: SimpleChanges): void { this.stars = []; for (let i = 1; i <= 5; i++) { this.stars.push(i > this.rating); } } clickStar(index: number) { if (this.readonly) { this.rating = index + 1; this.ratingChange.emit(this.rating); } } }
还有别的需要注意的地方吗?
写回答
1回答
-
和光同尘无为
提问者
2017-06-08
问题已经解决原因是 [rating] 没有双向绑定,改成 [(rating)]
00
相似问题