3

我正在使用从父组件传递给子组件的对象数组。当新项目被推送到数组或数组中现有对象之一的属性发生更改时,它不会触发ngOnChanges使用此变量的组件(父/子/兄弟组件)。

在 AngularJS$watchCollection中,我们可以使用它来监视复杂的对象。Angular2+ 有类似的东西吗?

如何进行类似于$watchCollectionAngular2 + 的深度检查?

我熟悉 AngularJS,但不熟悉 Angular2 +。

更新:
按照@Shirish Patel 的建议here,我发现虽然变量的变化在各处得到反映,但该ngOnChanges函数没有被触发。为什么会这样?我需要触发此功能,以便我可以处理更改值的其他操作。

4

1 回答 1

0

不要将对象推送到您的数组,因为变异的东西不会触发 ngOnChanges 生命周期钩子。有点像 rxjs distinctUntilChanged,需要一个新数组而不是修改过的数组。

您需要为输入提供新版本的数组尝试:

this.array = [...this.array, itemWhichNeedsAdding]

上面返回一个数组的新实例并将触发更改检测。

于 2017-10-27T12:19:55.447 回答