多次onNgChange

时间:2017-06-06 09:17:20

标签: typescript angular2-components angular2-changedetection

我的组件包含ChangeDetectionStrategy.OnPush和多个@Input属性。

当多个属性同时更改时,我有多次调用ngOnChanges

我需要在所有ngOnChanges完成后重新计算大小(对于该刻度/摘要/更改检测周期)。

所以没有

ngOnChanges(a) -> recalculate()
ngOnChanges(b) -> recalculate()
ngOnChanges(c) -> recalculate()

我想要

ngOnChanges(a)
ngOnChanges(b)
ngOnChanges(c)
recalculate()

setTimeout可能会有效,但我想知道如何使用ng2工具正确地完成它。

1 个答案:

答案 0 :(得分:0)

试试这个:

ngOnChanges(changes: SimpleChange}) {
   if(changes['a'] && changes['b'] && changes['c']){
     recalculate();
   }
  }