如何在完成后检测阵列更改?

时间:2018-03-15 15:05:38

标签: arrays angular

我正在使用具有公共数组变量的第三方组件。 首次初始化组件时,阵列的长度为零。 然后它通过一些外部rest调用填充,并且数组的每个元素在视图中呈现为div。 我想检测数组元素的渲染何时完成并执行某些操作。

我尝试过NgOnChanges,但是当数组发生变化时它永远不会被触发。

我还在IterableDiffers上尝试了NgDoCheck,它似乎在数组改变之前和之后被触发,即在数组元素被渲染之前和之后。

我想这种事情应该是可能的吗?

在我的组件中,我引用了第三部分,如

@ViewChild("acontainer") tablec: TableComponent;

这个组件有一个我可以用

访问的数组
this.tablec.dataArray

我想监视这个数组。

1 个答案:

答案 0 :(得分:0)

您必须重新分配数组才能创建更改。

例如,当您执行更新时,将数组设置为新数组,然后设置您的值。

例如

updateArr(value) {
  this.arr = [];
  this.arr = value;
}

编辑:您是否可以尝试将ViewChild创建为setter,应该在更新时调用

 private _element: ElementRef;

 @ViewChild('element') set element(el: ElementRef) {
    this._element = el;
 }