【问题标题】:change detection not getting triggered if a property of input object is changed in child component; property is bounded to [hidden]i in parent如果子组件中输入对象的属性发生更改,则不会触发更改检测;属性在父级中绑定到 [hidden]i
【发布时间】:2022-08-17 19:14:59
【问题描述】:
我有一个父组件,其中我有一个像这样的子组件:
<子[字段] = \'控制\' [隐藏] = \'控制.隐藏\'>
最初 control.hide = null
现在,在子组件的某个时刻,我正在根据特定条件将 hide 更改为 true。
但是更改检测没有在父组件中触发,并且子组件没有被隐藏,尽管 control.hide 是两种绑定到隐藏属性的方式。
只是为了检查控件对象的隐藏属性是否更改为真,我只是发出一个事件并在父组件中验证 control.hide 是否更改为真。
标签:
angular
angular2-changedetection
angular-changedetection
【解决方案1】:
如何在子组件中使用双向绑定?
否则,在您的子组件中,您可以执行以下操作:
@Input hidden;
@Output hiddenChange;
...
this.hiddenChange.emit(this.hidden);
...
在您的父组件模板中:
<child [field]='control' [(hidden)] = 'control.hide'>