2016-11-13 3 views
0

내 컨트롤러의 변수가 변경 될 때 ng-class를 업데이트하고 싶습니다. 어떤 이유로 인해 페이지로드시에만 트리거되고 변수가 변경되는 동안 ng 클래스는이를 반영하여 업데이트되지 않습니다. 제어기에서 해당 코드 여기변수가 변경되면 각도 ng-class를 업데이트하는 방법은 무엇입니까?

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

된다 : 여기

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

는 I 변수에 따라 변경할 코드 : 여기

변수 변경을 트리거 코드 :

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

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

ng-class는 초기에만 설정되어있는 것으로 보입니다.. $scope.apply() 함수에서 위의 함수를 래핑하여 ng-class이 변경 사항을 감시하고 ng-click이 변수를 토글하므로 적용해야한다고 생각합니다. 나는 올바른 길을 가고 있는가? 그렇다면 어떻게해야합니까?

+0

'$ rootScope'을'$ scope'로 바꾸면 제대로 작동합니까? – Akis

답변