0

我有一个组件ChangeDetectionStrategy.OnPush和多个@Input属性。更新Angular2组件后只有一次onNgChange

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

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

因此而不必

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

我想

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

一个setTimeout的可能会工作,但我想知道如何使用正确的工具NG2做到这一点。

回答

0

试试这个:

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

当然'ngOnChanges'犯规包含一次改变一切 – Bolza