我是打字稿和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);
})
}
}
答案 0 :(得分:3)
替换此代码块:
data.then((resp) => {
this.currentViewData = resp.json();
console.info(this.currentViewData);
});
请阅读有关Fat Arrow Function
的文档