我正在尝试将Socket.io与Ionic 2一起使用。我试图在列表中显示接收到的数据,绑定到数组。我有以下代码。
this.socket.on('Message', function(data){
console.log("Received: " + data);
this.messages.push(data);
})
html看起来像,
<ion-content padding>
<ion-list>
<ion-item *ngFor="let msg of messages">
{{ msg }}
</ion-item>
</ion-list>
</ion-content>
虽然我可以在浏览器的控制台中看到正在更新的数组,但列表并未反映任何更改。我究竟做错了什么?任何建议都非常感谢。
答案 0 :(得分:3)
使用箭头函数() =>
,否则this.
将不会指向您当前的类实例。
this.socket.on('Message', (data) => {
console.log("Received: " + data);
this.messages.push(data);
})
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions