Angularjs和Socket.io,不可能在我的视图中编辑一个值

为了学习使用AngularJS和NodeJS,我想创build一个聊天室…所有的angular度控制器工作正常,我可以发送信息到我的NodeJS服务器(与socket.io)。 但问题是:当我的clientApp收到一个socket.on,并在我的视图中更改var的值,它不工作…你知道为什么吗?

视图:

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

谢谢你的帮助。 最好的祝福,

编辑:要强制版本,你必须把:$ scope。$ apply()

你只需要打个电话

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

或者尝试制作一个Javascript对象,例如

 $scope.counter = { users: 0 }; 

当你收到事件: $scope.counter.users = number然后在你的看法:调用counter.users

我希望它能解决你的问题!