Typescript:无法访问类属性

时间:2017-06-10 16:02:32

标签: javascript angular typescript ionic2 angular2-services

我是打字稿和Angular 2的新手。

我想将getApiData方法中的api数据传递给类属性currentViewData

但是我收到了这个错误:

  

错误错误:未捕获(在承诺中):TypeError:无法设置属性   未定义TypeError的'currentViewData':无法设置属性   未定义的'currentViewData'

这是我的API服务代码:

import { Injectable }    from '@angular/core';
import { Http } from '@angular/http';

import 'rxjs/add/operator/toPromise';

@Injectable()
export class ResourceService {

   private baseUrl: string = 'http://api.com/blabla';
   private currentViewData: object;

   constructor(private http: Http) {

   }

   prepareSubPath(subPath: string): string {
      if (subPath.substr(0, 1) !== '/') {
         return '/' + subPath;
      }
   }

   getApiData(subPath: string = ''): void {
      let url = this.baseUrl + this.prepareSubPath(subPath);

      console.log(url);

      let data = this.http.get(url)
         .toPromise();

      data.then(function (resp) {
         this.currentViewData = resp.json();
         console.info(this.currentViewData);
      })
   }
}

1 个答案:

答案 0 :(得分:3)

替换此代码块:

data.then((resp) => {
   this.currentViewData = resp.json();
   console.info(this.currentViewData);
});

请阅读有关Fat Arrow Function

的文档