打字稿:无法访问 class 属性

Typescript: can not access class property

我是 typescript 的新手 Angular 2.

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

但是我收到了这个错误:

ERROR Error: Uncaught (in promise): TypeError: Cannot set property 'currentViewData' of undefined TypeError: Cannot set property 'currentViewData' of undefined

这是我的 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);
      })
   }
}

替换此代码块:

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

请阅读有关 Fat Arrow Function

的文档