在Angular 7中,当嵌套对象的属性值发生更改时,[disabled]不能检测到更改。这是因为Angular的变更检测机制无法自动检测嵌套对象的属性值的更改。
为了解决这个问题,你可以使用Angular的ChangeDetectorRef类手动触发变更检测。以下是一个使用ChangeDetectorRef的示例代码:
import { Component, ChangeDetectorRef } from '@angular/core';
@Component({
selector: 'app-your-component',
template: `
`
})
export class YourComponent {
isDisabled = false;
constructor(private cdr: ChangeDetectorRef) {}
updateDisabled() {
// 假设你的嵌套对象的属性值发生了更改
this.isDisabled = true;
// 手动触发变更检测
this.cdr.detectChanges();
}
}
detectChanges()
方法手动触发变更检测。注意:你需要确保在更改属性值后调用detectChanges()
方法。否则,变更检测不会触发。
这样,当嵌套对象的属性值发生更改时,Angular将能够正确检测到更改并更新相关的视图。