【发布时间】:2017-04-19 11:32:38
【问题描述】:
我试图从可观察对象数组中的一个对象中获取一个属性。除了隔离一个对象并获取各个属性之外,我可以获得所有内容。
这是成功获取数组的服务方法:
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"]
【问题讨论】:
-
你在控制台有什么吗?有什么错误吗?
-
控制台输出中未定义
-
你的意思是
Item: undefined -
这不是包含两个字符串的对象数组 bur 数组 ["name: test, value: 1","name: test2, value: 0"].array of objects 将是 [{"name ": "test", "value": 1"},{"name": "test2", "value": 0"}]
-
天哪,谢谢朱莉娅。我知道这有些不对劲。
标签: angular typescript rxjs