2016-11-05 22 views
0

Ich habe einfach versucht, meine Ansicht zu aktualisieren, wenn ich ein Socket-Ereignis erhalte. Mein Code in der Komponente ist so etwas wie unten:Angular2: View aktualisiert sich nicht von Socket.io-Ereignis

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); 
     }); 
    }); 
} 

, wenn ich diese Browser-Konsole zeigt einige Fehler laufen:

EXCEPTION: TypeError: Cannot read property 'run' of undefined 

btw, meine Buchse Veranstaltung ordnungsgemäß funktioniert in index.html

Jede Art von Hilfe wird geschätzt.

Antwort

6

Verwenden Sie nicht function(), weil auf diese Weise this nicht mehr auf die aktuelle Klasseninstanz verweist. Verwenden Sie stattdessen die Pfeilfunktionen:

this.socket.on('someEvent', (data) => { 
Verwandte Themen