簡體   English   中英

angular2組件生命周期

[英]angular2 component lifecycle

我將數組傳遞到組件中,就像這樣;

 <app-bar-chart-demo [chartLabelObject]="['2006', '2007', '2008', '2009', '2010', '2011', '2012']"></app-bar-chart-demo>

我正在像這樣檢索組件中的數組

    @Component({
...
      inputs:['chartLabelObject']
    })

然后我將變量設置為其值,如下所示

    export class BarChartDemoComponent {
     ...
      barChartLabels:string[] = this.chartLabelObject;
...//and doing stuff with it
}

但是似乎在我使用它的時候它是``未定義的''。如果我記錄它的值以響應按下按鈕,我會看到它已經設置好了,如果我將其放在``導出類''的開頭或下方沒有設置“構造函數”!

我應該在哪里設置“ barChartLabels:string []”?

對輸入屬性的每次更改都會觸發對組件上的ngOnChanges的調用。 在此處應設置barChartLabels屬性。

@Component({
  ...
  inputs:['chartLabelObject']
})
export class BarChartDemoComponent implements OnChanges {
  barChartLabels:string[];

  constructor() { }

  ngOnChanges(changes){
      if(changes["chartLabelObject"]){
          this.barChartLabels = this.chartLabelObject;
      }
  } 
}

您還可以稍微整理一下邏輯,只需使用@Input裝飾器將輸入映射直接映射到您的輸入即可,如下所示:

@Component({
  ...
})
export class BarChartDemoComponent {
  @Input('chartLabelObject') barChartLabels:string[];

  constructor() { }
}

暫無
暫無

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

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