2017-12-22 11 views
0

親コンポーネントでオブジェクトの配列を生成し、入力デコレータを子コンポーネント(チャート要素)に渡します。入力デコレータによって渡された配列を反復処理する方法

私の配列chartValuesを宣言して、私はメインデータオブジェクトを反復処理し、私のチャートに必要な値をchartValues配列にプッシュして取ります。

chartValues : Array<Object>=[]; 

this.chartValues.push({ name: data.countryName, y: data.areaInSqKm }); 

後、私はこのような入力デコレータを通じてこのchartValuesを通過したと私は子コンポーネントでそれを受けるが、私はそれを反復することはできないと私は、キーまたはエントリに達する傾けます。

<chart #values [filter]="filters.metric" [values]="chartValues"></chart> 

@Input() values: Array<Object>; 

私は配列を作成し、私はいつもそれを渡す際に要素のタイプはちょうど

[enter image description here]

答えて

0

ngOnInitのライフサイクルにあなたの "chartValuesを" initにすべきであるが、このworking plunkrの表情を持っています。 #valuesは必要ありません。
は、これらのいずれかが動作するはずです:

@Input() values: Array<Object>=[]; 
@Input() values: Array<Object>; 
@Input() values: Array<Object>=new Array(); 
+0

はい!今私はこの宣言が動作することを知っていますが、入力デコレータを使用して配列を渡すと、その理由はわかりませんが、その値にアクセスできません –

0

オブジェクトであるので、私は間違っているアレイタイプを宣言していた場合、私は知りません

@Input() 
values: any; 
0

コンポーネントの入力はまだコンストラクタで評価されていません。 ですから、

ngOnInit(): void { 
    ... 
    this.chartValues.push({ name: data.countryName, y: data.areaInSqKm});  
} 
+0

と彼は言う、「私は私の親コンポーネント内のオブジェクトの配列を生成し、私が子供のコンポーネントに入力デコレータを通してそれを渡す」 – Olezt

関連する問題