如何将响应对象中的数据分配给对象

时间:2017-04-14 23:33:58

标签: javascript angular

大家好我想问你关于基本问题,我的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
}

我不知道如何将对象从服务器转换为工作数组

3 个答案:

答案 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
    )
  }
}