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
相似问题