我希望我的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-class仅在初始ng-click
上设置。我相信我需要在$scope.apply()
函数中包含上述函数,以便ng-class
监视更改并将其应用为ng-click
切换变量。我是在正确的轨道上吗?如果是这样,我该怎么做?
答案 0 :(得分:1)
你不需要$ scope。$ apply。工作示例:https://jsbin.com/fogasiniku/edit?html,js,output
你真的在CSS类名中有双破折号吗?