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