如何分配从响应对象的数据对象

如何分配从响应对象的数据对象

问题描述:

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