我有一些示例json从API进入Angular服务,这是一组对象:
{
"data": {
"id": 1,
"title": "one"
},
"stats" : {
"voteCount": 8
}
}
'data'部分是我想以反角形式提交回来的角度,所以我真的希望我的observable是一个只有id和title的对象集合:
export class SimpleIssue {
id: number;
title: string;
}
在我的角度服务中,我得到的数据如下:
getItems(): Observable<SimpleIssue[]> {
return this.http.get(this.apiUrl + 'simpleissues/')
.map((response: Response) => <SimpleIssue[]> response.json())
.do(thedata => console.log('all: ' + JSON.stringify(thedata)))
.catch(this.handleError);
}
我想如果我将response.json()更改为可能有效的response.json()。数据,或者如果我在该行之后添加了另一个.map:
.map(blah =&gt; blah.data)
但没有运气。顺便说一句,如果我把它作为'任何'类型引入,我可以放{{myItem.data | json}}并且正好回到我所期望的,因为它正在处理每个集合对象。
我可以使用它,或者我是否缺少为每个视图发送不同视图模型等的基本概念?
由于
答案 0 :(得分:0)
Haven未经测试,但这适用于您的情况:
getItems(): Observable<SimpleIssue[]> {
return this.http.get(this.apiUrl + 'simpleissues/')
.map((response: Response) => <any[]> response.json())
.map((arr: any[]) => arr.map(i => i.data))
.do(thedata => console.log('all: ' + JSON.stringify(thedata)))
.catch(this.handleError);
}