簡體   English   中英

Angular2 @Input和生命周期鈎子

[英]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)調用OnInitngDoCheck上一個子組件( OnInit只在第一次檢查的叫法)

它應該工作正常。 我認為你的父組件是在加載了AddressListComponent后填充變量districts 在設置變量districts之前檢查加載子組件,或使用ngOnChanges而不是ngAfterViewInit (ngOnChangess掛鈎到每個更改,而不僅僅是組件的init)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM