如果某个数据绑定对象上的属性发生更改而不必将属性设置为新对象,如何触发ngOnChanges()来触发。
// component
@Input() myObj: ObjType;
// component code...
这不会触发更改
// outside component
dataBoundObj.width = 1000;
这样做
dataBoundObj = new ObjType();
答案 0 :(得分:2)
当您改变对象时,Angular不会检测到更改。但是,它会在检查当前组件时触发ngDoCheck
。因此,您可以自己进行检查并从那里触发ngOnChanges
:
ngDoCheck() {
if (this.o.width !== this.oldWidth) {
this.ngOnChanges();
}
}