如何分配从响应对象的数据对象
问题描述:
嗨,大家好,我想问你关于柠基本的问题,我的API服务器返回response from server如何分配从响应对象的数据对象
在我的角度服务我正在全成请求从服务器获取这样的数据:
get() {
return this._$http({
url: `${this._AppConstants.api}/calendar`,
method: 'GET'
}).then(
(res) => {
let events = [];
return res.data;
}
)
}
但我想分配对我的events
对象的响应。比方说,我的服务器返回(你可以在截图中看到)的对象,但我想改造他们是这个样子:
{
title: res.data.description,
startsAt: res.data.startdate,
endsAt: res.data.enddate
}
我没有任何想法如何从服务器转换对象工作阵列
答
根据您的确切需要,您可以传入一个新对象。
events.push({
title: res.data.description,
startsAt: res.data.startdate,
endsAt: res.data.enddate
})
请记住,你的events
变量声明你的.then()
函数内,所以不会暴露其值(一个或多个)。
答
备选地,可以使用可观察和一种方法是这样的:
getProducts(): Observable<IProduct[]> {
return this._http.get(this._productUrl)
.map((response: Response) => <IProduct[]> response.json())
.do(data => console.log('All: ' + JSON.stringify(data)))
.catch(this.handleError);
}
上可观察到的映射运算符映射如IProduct接口定义为产品对象的数组的响应。
答
你可以返回一个可观察到的:
events.service.ts
events(){
return this.http.get(this.eventsUrl)
.map((response: Response) => response.json())
}
,然后订阅它在你的组件:
event.component.ts
export class EventComponent{
events = []
constructor(private eventSvc:EventService){
eventSvc.subscribe(
events => this.events = events
)
}
}