2016-10-25 1 views
0

Ich verwende Websocket (JavaScript), die die folgenden Ereignisse hat:Angular mehrere Ereignisse mit einer Funktion

ctrlScope.conn.onerror = function() { 
     ctrlScope.updateStatus(); 
    }; 

    ctrlScope.conn.onclose = function() { 
     ctrlScope.updateStatus(); 
    }; 

    ctrlScope.conn.onopen = function() { 
     ctrlScope.updateStatus(); 
    }; 

Wie Sie bin ich updathing den Chat-Status diese Ereignisse mit sehen können, aber es sieht repetative, gibt es eine Möglichkeit, all diese Websocket-Ereignisse in einem zu kombinieren?

Zusätzlich gibt es eine Websocket-Variable: readyState, die den Status der Verbindung wie die Ereignisse angibt. Dies könnte die Funktionen ersetzen, aber $ watch funktioniert nicht.

Bitte jemand helfen :(

Antwort

1

ich diesen Code nicht versucht haben, aber in der Theorie Sie es so schreiben könnte:

var handlers = ["onerror","onclose","onopen"]; 
for(var i=0;i<handlers.length;i++){ 
    ctrlScope.conn.[handlers[i]] = ctrlScope.updateStatus; 
}; 

Dies nutzt die JavaScript-Fähigkeit zu verweisen Elemente, die entweder Punktnotation (ctrlScope.conn.onopen) oder Array-Notation (ctrlScope.conn ["onopen"]) verwenden

Verwandte Themen