是否有任何角度2方式跳过ngOnChanges的第一个触发器?目前我正在使用这种天真的方法来忽略它:
isFirst: boolean = true;
ngOnChanges(changes: SimpleChanges) {
if (this.isFirst) {
this.isFirst = false;
return;
}
console.log(changes);
}
Run Code Online (Sandbox Code Playgroud)
Gün*_*uer 10
您可以使用
https://angular.io/docs/ts/latest/api/core/index/SimpleChange-class.html#!#isFirstChange-anchor
if(changes['prop'].isFirstChange()) {
}
Run Code Online (Sandbox Code Playgroud)
要添加到先前的答案并对此进行更多解释...
changes是已更改的对象数组。因此,如果您有一个 input myInput,则需要通过执行changes['myInput']. myInput包含:
previousValue - 对象的先前值(更改前) currentValue - 已更改对象的当前值firstChange- 关于这是否是第一次发生变化的布尔值(注意,当组件初始化时这将是真,否则为假) -isFirstChange()如果这是第一次变化,将返回真。代码:
//your input
@Input() myInput: any;
ngOnChanges(changes: any) {
//check if this isn't the first change of myInput
if(!changes['myInput'].isFirstChange()) {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5439 次 |
| 最近记录: |