首页 > 解决方案 > 如何检测用变量初始化的嵌套属性的变化

问题描述

我有两个组件,父母和孩子。在父组件中,我有一个像这样的对象:

firstCondition = false;
secondCondition = false;
filters: Filters = {
    dropdowns: [
        { label: 'Direction', options: { disabled: this.firstCondition || this.secondCondition }
    ]
}

我的子组件像这样获取filters对象:@Input

@Input() f: Filters

每当一个firstCondition或一个的值secondCondition发生变化时,我希望 Angular 的变化检测能够检测到这个值的变化,但它没有......如果我要在父组件中执行以下操作,它将按预期工作:

this.filters.dropdowns[0].options.disabled = !this.filters.dropdowns[0].options.disabled

我认为问题在于我没有disabled直接改变价值,而是间接改变。有针对这个的解决方法吗?

标签: angulartypescriptangular-changedetection

解决方案


推荐阅读