是否可以在$ rootScope变量上使用getReactively?

时间:2015-06-07 11:47:53

标签: angularjs meteor angular-meteor

我有一个案例,我想根据用户更新ui,因此如果用户注销并以不同用户身份登录,则会更改ui中用户的分数。我想做的方式是看$rootScope.currentUser

从我的测试中看来,似乎存在对$ rootScope的某种访问,但它没有得到用户更改的更新(除非我的代码中有错误)。这是相关的代码:

$meteor.autorun($scope, function() {
            if (null !== $rootScope.currentUser) {
                $scope.userForScore = $scope.$meteorObject(Userinfo, {user_id: $scope.getReactively('currentUser')._id});//$rootScope.currentUser._id
            }
        });

    $scope.userScore = function(){
        if ($scope.userForScore === undefined || $scope.userForScore.score === undefined) {
            return 1;
        }
        return $scope.userForScore.score;
    };

Userinfo - 是我在服务器中创建的集合。

2 个答案:

答案 0 :(得分:1)

您可以使用Meteor.user()这是一个反应性var。无需添加额外的观察者层。

答案 1 :(得分:1)

是的,它是可能的,它的工作方式与您的完全相同。

你的问题与getReactively无关,我已经为你的repo创建了一个pull请求来修复它: https://github.com/Urigo/angular-meteor/issues/415#issuecomment-113925910