ng-класс не назначается должным образом

Я пытаюсь применить класс на основе значения области.

Ангуляры

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>

HTML для класса переключения

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

Но ничего не произошло, когда я нажимаю на div. Это даже не печатает mainmenuState.

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


person Body    schedule 10.05.2015    source источник


Ответы (2)


В JS-коде вашей директивы должно быть

scope.mainmenuState = 'mm';

Вы сравнили старое значение с «мм» вместо замены значения.

person Pascal Ockert    schedule 10.05.2015

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';
                })
            })
        }
   }
})
person vinayakj    schedule 10.05.2015