2015-08-04 4 views
1

Чтобы научиться использовать AngularJS и NodeJS, я хочу создать чат ... Все угловые контроллеры прекрасно работают, и я могу отправить информацию на мой NodeJS-сервер (с socket.io). Но проблема в том, что когда my clientApp получает socket.on, и я изменяю значение var в моем представлении, это не работает ... Знаете почему?Angularjs и Socket.io, невозможно изменить значение на мой взгляд

Вид:

<!-- Users connected --> 
      <div class="row" ng-controller="connectedUsersCtrl"> 
       <div class="col-md-8"></div> 
       <div class="col-md-4" ng-model="connectedUsers">{{connectedUsers}}</div> 
      </div> 

app.js:

var chatApp= angular.module('chatApp', []); 
var socket = io.connect('http://127.0.0.1:2901'); 


chatApp.controller('connectedUsersCtrl', ['$scope', function ($scope) { 

    socket.on("connectedUsers", function(number) { 
     console.log("There are " + number + " users."); 

     // All work but not this line... ! 
     $scope.connectedUsers = number; 

    }); 

}]); 

Спасибо Вам за то помочь вам. С наилучшими пожеланиями,

Edit: Чтобы заставить издание, вы должны поставить:. $ Объем $ применяются()

ответ

1

Вам просто нужно позвонить

$timeout(function() { $scope.$apply() }); 

или попытаться сделать Объект Javascript, например

$scope.counter = { 
    users: 0 
}; 

и когда вы получаете событие: $scope.counter.users = number затем на ваш взгляд: позвонить counter.users

Я надеюсь, что это решит вашу проблему!

+0

Хорошо! Спасибо вам за помощь! – Dimitri

Смежные вопросы