2017-08-28 53 views
0

我有一個調用服務來獲取搜索元數據的ng2組件。所以我在名爲searchMetadata的ng2組件上有一個成員變量。結果集是這樣的:在ng2中寫這個打字稿lambda的有效方法是什麼?

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

author對象有一個完全定義的一組屬性的描述類似名字,姓氏,等我使用一個選擇控制,需要與像對象綁定數據集的作者{id:123,文本:'John Smith'}。所以我需要在組件上定義一個作者成員變量,並使用lambda將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運營商允許你從一種類型到另一種類型的「地圖」。

最難的部分是正確的語法,因爲使用{}暗示它是一個多行lambda ...這不是我們所拍攝的。

只是在匿名類型周圍加上括號似乎有訣竅。

相關問題