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

Javascript 如何将响应对象中的数据分配给对象,javascript,angular,Javascript,Angular,嗨,伙计们,我想问你们一个非常基本的问题,我的API服务器回来了 在我的angular service中,我成功请求从服务器获取此数据: get() { return this._$http({ url: `${this._AppConstants.api}/calendar`, method: 'GET' }).then( (res) => { let

嗨,伙计们,我想问你们一个非常基本的问题,我的API服务器回来了

在我的angular service中,我成功请求从服务器获取此数据:

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