[英]Angular2 @Input and lifecycle hook
我有以下組件:
export class AddressListComponent implements AfterViewInit{
@Input() districts: District[] = [];
constructor() { }
ngAfterViewInit() {
console.log(this.districts); } }
所以它控制台將區域記錄為空數組,但我將其作為輸入非空數組發送,並且它很好地顯示了這個html:
<a *ngFor = "let district of districts; let i = index" class="list-group-item clearfix" >
WORKS
</a>
所以我的問題是下一個:在生命周期鈎子中我能夠從districts
數組中控制日志數據嗎? 因為我需要在顯示html之前更改它
在生命周期鈎子中,我能夠從區域數組中控制日志數據
第一次初始化組件時,所有輸入都在ngOnInit
生命周期鈎子中可用。 對於后續更新,請使用ngOnChanges
。 或者您只能使用ngOnChanges
因為在初始化組件時也會調用它。
您可以從Angular中有關變更檢測的所有內容中提到的操作順序中看到它:
1)更新子組件/指令實例的輸入屬性
...
3)如果綁定發生更改,則在子組件上調用OnChanges
生命周期鈎子
4)調用OnInit
和ngDoCheck
上一個子組件( OnInit
只在第一次檢查的叫法)
它應該工作正常。 我認為你的父組件是在加載了AddressListComponent
后填充變量districts
。 在設置變量districts
之前檢查加載子組件,或使用ngOnChanges
而不是ngAfterViewInit
(ngOnChangess掛鈎到每個更改,而不僅僅是組件的init)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.