要学习使用AngularJS和NodeJS,我想创建一个聊天室...所有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()
答案 0 :(得分:1)
你只需要打电话
$timeout(function () { $scope.$apply() });
或尝试制作Javascript对象,例如
$scope.counter = {
users: 0
};
当您收到活动时:$scope.counter.users = number
然后在您的视图中:致电counter.users
我希望它能解决你的问题!