我正在尝试从一个可观察的对象数组中的一个对象中获取一个属性。除了隔离一个对象并获得各个属性之外,我可以获得所有内容。
以下是成功获取数组的服务方法:
getItems(): Observable<IItem[]> {
return this.get(this.baseUrl + '/items')
.map((res: Response) => <IItem[]>res.json())
.do(data => console.log("Items: " + JSON.stringify(data)))
.catch(this.handleError);
}
尝试只获取一个对象无效:
getItem(name: String): Observable<IItem> {
return this.getItems()
.map((items: IItem[]) => items.find(item => item.name === name))
.do(item => console.log("Item: " + item))
.catch(this.handleError);
}
组件
this._itemsApi.getItem("test")
.subscribe(
item => this.testItem = item,
error => this.errorMessage = <any>error);
模板
<widget icon="file" [count]="testItem?.value">
JSON
["name: test, value: 1","name: test2, value: 0"]
答案 0 :(得分:2)
试试这个。 LinQ for TypeScript。这将帮助您从对象数组中找到一个。 https://github.com/kutyel/linq.ts
按照它的文档,它包含你需要做的一切。
答案 1 :(得分:1)
你有一个字符串数组,而不是一个对象数组。 重新格式化API以返回对象数组 - &gt; [{“key”:“value1”},{“key”:“value2”}]。然后,您可以迭代这些对象并使用item.value来获取给定项的值。