大家好我想问你关于基本问题,我的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
}
我不知道如何将对象从服务器转换为工作数组
答案 0 :(得分:1)
或者,你可以使用observables和这样的方法:
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);
}
observable上的map运算符将响应映射到IProduct接口中定义的产品对象数组。
答案 1 :(得分:0)
根据您的确切需要,您可以传入一个新对象。
events.push({
title: res.data.description,
startsAt: res.data.startdate,
endsAt: res.data.enddate
})
请注意,您的events
变量已在.then()
函数内声明,因此不会公开其值。
答案 2 :(得分:0)
你可以返回一个可观察的:
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
)
}
}