Ionic 2 List未更新数据

时间:2017-01-18 15:19:12

标签: javascript angular socket.io ionic2

我正在尝试将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>

虽然我可以在浏览器的控制台中看到正在更新的数组,但列表并未反映任何更改。我究竟做错了什么?任何建议都非常感谢。

1 个答案:

答案 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