2016-11-13 67 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

回答