2017-08-28 11 views
0

私は検索メタデータを取得するサービスを呼び出すng2コンポーネントを持っています。したがって、searchMetadataという名前のng2コンポーネントにメンバー変数があります。結果セットは次のようになります。ng2でこのタイプスクリプトlambdaを書く効率的な方法は?

var searchMetadata = 
{ 
    Authors = Author[], 
    Titles = Title[] 
} 

Authorオブジェクトは、私のようなオブジェクトとの結合データセットを必要とする選択制御を使用してい姓、姓のような著者を記述する属性などの完全に定義されたセットを持っています{id:123、テキスト: 'John Smith'}。ですから、構成要素にauthorsメンバ変数を定義し、ラムダを使用してsearchMetadata.Authorsを予想される構造に変換する必要があります。漠然とこれは、C#のラムダで行われることになる方法を示していますいくつかのハックのコードは以下の通りです:

this.authors = this.searchMetadata.Select(
    x => new {id:x.Id, text:x.FirstName + ' ' + x.LastName}); 

何NG2でラムダのこのタイプを書き込むための適切な方法でしょうか?

答えて

1

マップ演算子試してみてください:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

this.authors = this.searchMetadata.Authors.map(
     x => ({id:x.Id, text:x.FirstName + ' ' + x.LastName}); 

mapオペレータは、別のタイプのいずれかのタイプから「マップ」することができます。

{}を使用すると、マルチラインラムダであることが暗示されたため、ハード部分が正しい構文を得ていました。これは、私たちが撮影したものではありませんでした。

匿名型の周りにかっこを置くだけで、このトリックを行うようです。

関連する問題