Angular 在ng2中编写这个类型脚本lambda的有效方法?
我有一个ng2组件,它调用一个服务来获取搜索元数据。因此,我在ng2组件上有一个名为searchMetadata的成员变量。结果集如下所示:Angular 在ng2中编写这个类型脚本lambda的有效方法?,angular,typescript,Angular,Typescript,我有一个ng2组件,它调用一个服务来获取搜索元数据。因此,我在ng2组件上有一个名为searchMetadata的成员变量。结果集如下所示: var searchMetadata = { Authors = Author[], Titles = Title[] } Author对象有一组完整定义的属性,这些属性描述了FirstName、LastName等作者。我正在使用一个select控件,它需要一个绑定数据集,其中包含{id:123,text:'John Smith'}等对
var searchMetadata =
{
Authors = Author[],
Titles = Title[]
}
Author对象有一组完整定义的属性,这些属性描述了FirstName、LastName等作者。我正在使用一个select控件,它需要一个绑定数据集,其中包含{id:123,text:'John Smith'}等对象。因此,我需要在组件上定义一个authors成员变量,并使用lambda将searchMetadata.authors转换为预期的结构。下面是一些黑客代码,它模糊地显示了如何使用C lambda实现这一点:
this.authors = this.searchMetadata.Select(
x => new {id:x.Id, text:x.FirstName + ' ' + x.LastName});
在ng2中写入此类lambda的正确方法是什么?请尝试map操作符:
映射运算符允许您从一种类型映射到另一种类型
困难的部分是正确的语法,因为使用{}意味着它是一个多行lambda。。。这不是我们拍摄的目的
在匿名类型周围加上括号似乎就可以了
this.authors = this.searchMetadata.Authors.map(
x => ( {id:x.Id, text:x.FirstName + ' ' + x.LastName});