我是Angularjs的新手,我一直在尝试让这段代码正常工作,但我一直做不到。我需要在点击时添加和删除一个类。
我的jQuery版本运行得很好:
$('.toggle').on('click', function() {
$('.container').stop().addClass('active');
});
$('.close').on('click', function() {
$('.container').stop().removeClass('active');
});
在我的HTML中:
<div class="toggle" toggle-class="active"></div>
据我所知,使用指令将是最合适的。在我的指令中我有这样的代码:
app.directive('toggleClass', function() {
return {
restrict: 'A',
controller: 'LoginCtrl',
controllerAs: 'LoginC',
link: function(scope, element) {
element.click(function(){
if(element.attr('toggle') === 'active') {
angular.element(element).addClass('active');
} else {
angular.element(element).removeClass('active');
}
});
}
};
});
我遗漏了一些东西。有没有人能给点建议?我真的很感激。谢谢
发布于 2016-02-14 04:21:07
您的指令可以大大简化。
angular.module("myApp").directive('toggleClass', function() {
return {
restrict: 'A',
controller: 'LoginCtrl',
controllerAs: 'LoginC',
link: function(scope, elem, attrs) {
elem.on('click', function(e){
if (attrs.toggleClass === 'active') {
elem.toggleClass('active');
};
});
}
}
})
发布于 2016-02-13 20:12:22
正如佐藤所指出的,这甚至更容易
<div ng-class="{'active':someVal}" ng-click="someVal = !someVal"></div>
https://stackoverflow.com/questions/35379651
复制相似问题