当我收到一个套接字事件时,我只是想更新我的视图。我在组件中的代码如下所示:
constructor(private _zone: NgZone){
this.socket = io.connect('http://localhost:3000');
this.socket.on('someEvent', function(data) {
this._zone.run(() => {
this.dataItem = data.item;
console.log(this.dataItem);
});
});
}
当我运行这个浏览器控制台时显示一些错误:
EXCEPTION: TypeError: Cannot read property 'run' of undefined
顺便说一句,我的socket事件在index.html中工作正常
不要使用function ()
,因为这样this
不再指向当前类实例。使用箭头函数代替:
this.socket.on('someEvent', (data) => {