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
我希望它能解决你的问题!