【发布时间】:2016-11-09 18:30:03
【问题描述】:
我有一个组件调用服务从 RESTful 端点获取数据。该服务需要在获取数据后执行回调函数。
问题是当我尝试使用回调函数将数据附加到组件变量中的现有数据时,我得到了一个EXCEPTION: TypeError: Cannot read property 'messages' of undefined。为什么this 未定义?
TypeScript 版本:1.8.10 版
控制器代码:
import {Component} from '@angular/core'
import {ApiService} from '...'
@Component({
...
})
export class MainComponent {
private messages: Array<any>;
constructor(private apiService: ApiService){}
getMessages(){
this.apiService.getMessages(gotMessages);
}
gotMessages(messagesFromApi){
messagesFromApi.forEach((m) => {
this.messages.push(m) // EXCEPTION: TypeError: Cannot read property 'messages' of undefined
})
}
}
【问题讨论】:
-
您使用的是哪个版本的 TypeScript? (您可以使用
tsc -v进行检查) -
异常是因为 forEach.请改用 For-of。
标签: javascript arrays typescript angular