2017-11-04 28 views
2

I型アレイ角度2コンポーネント入力式を使用して結合(マップ)

class FooComponent { 
@Input() selectedItemIds:String[]; 
} 

の入力を有する成分を有し、Iは親コンポーネント

<app-foo-component [selectedItemIds]='items.map(i=>i.Id)'><app-foo-component> 

に結合にマップ表現を使用したいです良いアンギュラーエラーが発生する

Bindings cannot contain assignments... 

解決策は何ですか?

**注:私はコンポーネントclass.Iでそれを行う方法を知っている私はちょうど私が を行うにしようとしていたものを見せたかった、それはテンプレート 経由で何とか可能であり、コードは非常に簡単であるかどうかを知りたいです* *

+0

を行うには、いくつかの関数を作成することができますが、コンポーネントに渡すためにしようとする前に、あなたは '* .ts'ファイル内のアイテムをマッピングすることはできますか? –

+0

アイテムはtsファイル内にあり、オブジェクトの配列です – Arash

+0

つまり、バインド内でこのマッピングを実行することはできません。配列を渡す前に配列を準備しておく必要があります。配列が完成する前にコンポーネントがビルドされているので、このようにしたいのであれば、 '* ngIf'を'

答えて

1

<app-foo-component>に渡す前に*.tsファイルのmap関数を呼び出します。配列が完成する前にコンポーネントがビルドされているので、このようにしようとするなら、いくつかのプロパティを作成してください。

<app-foo-component *ngIf="itemsReady" [selectedItemIds]='items'><app-foo-component> 

は、その後、あなたの*.tsファイルで、あなたのマッピング

itemsReady = false; 

mapFunction() { 
    // do your mapping and when it's complete set this.itemsReady = true 
} 
関連する問題