我有以下angular2父级:
ParentComponent {
some_array : Array;
(...)
}
它的孩子:
ChildComponent {
selector: "child"
@Input some_object : Object;
}
我的布局如下,来自Parent组件:
<ng-container *ngFor="let object of some_array">
<child [some_object]="object></child>
</ng-container>
和儿童布局:
<Text [text]="some_object.text"/>
相应地呈现视图并完美运行。
但是,当我通过带有[i] ndex的for循环更改父元素中some_array
内的对象属性时,子元素没有任何变化,我需要检测这些变化。
我怎么能这样做?
非常感谢你的帮助
答案 0 :(得分:0)
只要您实际上没有选择OnPush作为ChangeDetectionStrategy或完全与ChangeDetection分离,那么更改应该在您的孩子中复制。
但是,如果您质疑通常如何对数据绑定属性的更改做出反应,那么就会有OnChanges
生命周期钩子。
export class ChildComponent implements OnChanges {
ngOnChanges(changes: SimpleChanges) {
if (changes['some_object']) {
//
// react to changes in general
// or access changes['some_object'].currentValue
// or changes['some_object'].previousValue
// ...
}
}
}
希望这有助于解决您的问题!