假定放了一個item進入一個component app-item
<app-item *ngFor="let item of items; let i = index" [item]="item"></app-item>
[item]
的內容舉例來說:
item = {
a:'a',
b:'b',
c:[{a:'a', b:'b'},{a:'a', b:'b'},...,{a:'a', b:'b'}]
}
若在ngOnInit()裡面,console.log(item)是看的到c,但console.log(item.c)取不到,會顯示undefind,但可以取的到a,b,有點弔詭。
取得c必須要在,ngDoCheck(),ngAfterContentChecked(),ngAfterContentChecked() ngAfterViewChecked()之中,這些都會連續監測,但不清楚這樣效能好不好,這樣每次變動之間會以重新刷刷新一次變數。怎麼去劃分這幾個lifecycle的差異比較適當,看說明不是很懂
ngOnInit(){
console.log(item); // 看的到C
console.log(item.c) //undefind
console.log(item.a) //取的到
console.log(item.b) //取的到
}
ngDoCheck(){
console.log(item.c)//空個幾次後取得到
}