我有一个组件调用服务以从RESTful端点获取数据。在获取所述数据之后,需要给这个服务一个回调函数来执行。执行回调函数时,Angular2组件的“this”未定义
问题是,当我尝试使用回调函数将数据附加到组件变量中的现有数据时,我得到一个EXCEPTION: TypeError: Cannot read property 'messages' of undefined
。为什么this
未定义?
打字稿版本:版本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'来检查) – rinukkusu
因为forEach而异常。改用For-of。 –