angular2过滤器/映射http的结果进入变量

时间:2016-07-15 14:50:38

标签: typescript angular

我想从http get中获取一个对象,并在获得后将其放入3个变量中。

Data: [
{ 
    reportId: 1, 
    results1: [{
        name: "TotalReferralsMade",
        optionId: 3082,
        factor: 1,
        description: null
        }],
    results2: [ ],
    results3: [{
        name: "2014/15",
        dateRangeId: 469,
        dateFrom: "2014-04-01T00:00:00.000Z",
        dateTo: "2015-03-31T00:00:00.000Z"
}]}]

我想要的数据高于3个变量。以下是数据的http请求。

public GetReportOptions (): Observable<ReportOptions[]> {
    return this._http.get('uri')
        .map((response: Response) => <ReportOptions[]>response.json())
        .do(data => console.log("Options: " + JSON.stringify(data)))
        .catch(this.handleError);
}

所以我调用作为订阅组件的服务的一部分。然后在组件中我调用ngOnChanges中的数据

getReportOptions(id: number) {
this._Service.GetReportOptions(id)
  .subscribe(options => this.results = options }, error => this.errorMessage = <any>error)
}

这会将所有数据放入一个名为results的对象中。我希望数据进入results1,results2,results3。可以这样做吗?

1 个答案:

答案 0 :(得分:0)

我一直在质疑我是否正确理解你的问题,主要是因为它不是一个Angular2问题而是更多的Javascript / Typescript问题。我相信这是你正在寻找的答案(如果我在这里理解问题和目标)。

getReportOptions(id: number) {
    this._Service.GetReportOptions(id)
           .subscribe(options => {
               //this.results = options; 
               this.results1 = options[0].results1;
               this.results2 = options[0].results2;
               this.results3 = options[0].results3;
           }}, error => this.errorMessage = <any>error)
}