2016-07-13 7 views
0

Ich höre auf socket.on, ich möchte alle Nachrichten auflisten, die aus dem Backend kommen, ich versuche mit ng-repeat alle eingehenden Nachrichten aufzulisten, aber es bricht in alphabetischer Reihenfolge und nur die erste Nachricht auf. Gibt es eine bessere Möglichkeit, socket.io mit angularJs ng-repeat oder anderen Anweisungen zu hören?Wie wird ng-repeat mit socket.io verwendet, wenn Sie eine Nachricht vom Backend erhalten?

main.html

<div class="col-md-4"> 
      <p ng-repeat="data in message track by $index">{{data}}</p> 
</div> 

ctrl.js

socket.on('ditConsumer',function (data) { 
     $scope.message = data; 
     console.log($scope.message); 
    }); 
+1

Sie müssten ein auslösen digest cycle wie in '$ scope. $ apply (() => $ scope.message = data)' –

+0

Wie wäre es, wenn ich ein Array erstellen und Daten hinein und uns hineinschieben würde Das Array in ng-Wiederholung? – hussain

+0

Sollte das gleiche sein –

Antwort

1

Sie benötigen einen Digest Zyklus auszulösen Daten an das Array angehängt:

socket.on('ditConsumer', data => { 
    $scope.$apply(() => $scope.message.push(data)); 
}); 
+0

Danke, es hat funktioniert! – hussain