2016-11-13 65 views
0

我希望当我的控制器中的变量发生变化时,我的ng-class被更新。出于某种原因,它仅在页面加载时触发,并且在变量更改时,ng-class不会更新以反映此情况。如何在变量更改时更新角度ng-class?

这里是触发变量变化的代码:

<a class="cs-mobile-menu__close-icon" ng-click="switchMobileMenu('right')"> 
</a> 

这里是,我想取决于可变改变代码:

<div class="right-menu__user" 
     ng-class="{ 
        'animate': true, 
        'animate--leave': !isRightMenuOpen}"> 
    {{user.firstName}} {{user.lastName}} 
</div> 

这里被从控制器相应的代码:

$rootScope.isLeftMenuOpen = false; 
$rootScope.isRightMenuOpen = false; 

$scope.switchMobileMenu = function(direction) { 
     if (direction === 'left') { 
      $scope.isLeftMenuOpen = !($scope.isLeftMenuOpen); 
     } else { 
      $scope.isRightMenuOpen = !($scope.isRightMenuOpen); 
     } 
}; 

看来,ng级只在初始设置ng-click。我相信我需要在$scope.apply()函数中包装上述函数,以便ng-class监视更改并将它们应用为ng-click来切换变量。我在正确的轨道上吗?如果是这样,我将如何做到这一点?

+0

如果你用'$ scope'替换'$ rootScope',它会工作吗? – Akis

回答