Angularjs 和 Socket.io,无法编辑我认为的值

Angularjs and Socket.io, impossible to edit a value in my view

为了学习使用 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()

你只需要打电话给

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

或尝试创建一个 Javascript 对象,例如

$scope.counter = {
    users: 0
};

当您收到事件时:$scope.counter.users = number 然后在您看来:调用 counter.users

希望能解决您的问题!