观看根目镜的变化

我试图绑定到rootcope,以便在用户login时可以在不同的服务器上设置状态。 这是我的模块。

angular.module('presence', [ ] ) .run(function ($rootScope) { $rootScope.$watch($rootScope.currentUser, function () { console.log('change currentUser') console.log($rootScope.currentUser) presence.setGlobal({ u: $rootScope.currentUser, s: 'on' }) }) }) 

没有控制器,因为它只是关于用户的全球存在,而与DOM无关。

这不工作,手表运行一次,但从来没有再次在随后的变化。 谢谢你的帮助。

编辑:login代码如下所示:

  $scope.login = function() { $http.post('http://localhost:3000/login', $scope.user).success(function(res, status) { if (res && res._id) { $rootScope.currentUser = res } }).error(function(res, status) { $scope.error = res.err }); }; 

此代码在DOM中更新正常。 它在html中显示用户名,例如:

 a.user(ui-if="currentUser", ng-href="/user/{{currentUser._id}}") {{currentUser.username}} 

语法是$rootScope.$watch('currentUser')不是$rootScope.$watch($rootScope.currentUser)

有些东西需要更改$rootScope.currentUser ,以便能够注意到其中的任何更改。 你已经分享了代码。

还需要在angularJS循环内部( http://docs.angularjs.org/guide/concepts )进行$rootScope.currentUser更改。 如果是在外部完成,您可以调用$ digest( http://docs.angularjs.org/api/ng。$ rootScope.Scope#$ digest)