Javascript 如何将响应对象中的数据分配给对象
嗨,伙计们,我想问你们一个非常基本的问题,我的API服务器回来了 在我的angular service中,我成功请求从服务器获取此数据:Javascript 如何将响应对象中的数据分配给对象,javascript,angular,Javascript,Angular,嗨,伙计们,我想问你们一个非常基本的问题,我的API服务器回来了 在我的angular service中,我成功请求从服务器获取此数据: get() { return this._$http({ url: `${this._AppConstants.api}/calendar`, method: 'GET' }).then( (res) => { let
get() {
return this._$http({
url: `${this._AppConstants.api}/calendar`,
method: 'GET'
}).then(
(res) => {
let events = [];
return res.data;
}
)
}
但我想将响应分配给我的事件对象。假设我的服务器正在返回,正如您在屏幕截图中看到的那样,但我想将它们转换为如下所示:
{
title: res.data.description,
startsAt: res.data.startdate,
endsAt: res.data.enddate
}
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);
}
我不知道如何将对象从服务器转换为工作阵列根据您的具体需要,您可以传入一个新对象
events.push({
title: res.data.description,
startsAt: res.data.startdate,
endsAt: res.data.enddate
})
请记住,您的events变量是在.then函数中声明的,因此它不会公开其值。或者,您可以使用Observable和如下方法:
{
title: res.data.description,
startsAt: res.data.startdate,
endsAt: res.data.enddate
}
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操作符将响应映射到IPProduct界面中定义的产品对象数组。您可以返回一个observable: 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
)
}
}