ng-class没有正确分配

时间:2015-05-10 11:50:41

标签: javascript angularjs ng-class

我正在尝试根据范围值应用一个类。

Angularjs

var ma = angular.module('ma', ['ngRoute', 'ngResource']);

控制器

ma.controller('maCtrl', ['$scope', '$resource', function($scope, $resource){
    $scope.mainmenuState === 'ss'; 
}]);

指令

ma
    .directive('toggleAside', function(){
       return {
            restrict: 'A',
            link: function(scope, element, attr) {
                element.on('click', function(){
                    scope.$apply(function(){
                        scope.mainmenuState === 'mm';
                    })
                })
            }
       }
    })

点击事件的HTML(toggleMainmenu)

<div toggle-aside></div>

适用于Switch类的HTML

<aside data-ng-class="{ 'toggled': mainmenuState === "mm" }"></aside>

但是当我点击div时没有任何反应。它甚至不打印mainmenuState。

http://codepen.io/anon/pen/MwKEOB

2 个答案:

答案 0 :(得分:0)

在你的指令的JS代码中,它应该是

scope.mainmenuState = 'mm';

您将旧值与&#39; mm&#39;进行了比较。而不是替换价值。

答案 1 :(得分:0)

ma.controller('maCtrl', ['$scope', '$resource', function($scope, $resource){
       $scope.mainmenuState = 'ss'; 
}]);

指令

.directive('toggleAside', function(){
   return {
        restrict: 'A',
        link: function(scope, element, attr) {
            element.on('click', function(){
                scope.$apply(function(){
                    scope.mainmenuState = 'mm';
                })
            })
        }
   }
})