首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angularjs addClass/ removeClass

Angularjs addClass/ removeClass
EN

Stack Overflow用户
提问于 2016-02-13 20:08:58
回答 2查看 1.1K关注 0票数 0

我是Angularjs的新手,我一直在尝试让这段代码正常工作,但我一直做不到。我需要在点击时添加和删除一个类。

我的jQuery版本运行得很好:

代码语言:javascript
运行
复制
   $('.toggle').on('click', function() {
      $('.container').stop().addClass('active');
});

   $('.close').on('click', function() {
      $('.container').stop().removeClass('active');
 });

在我的HTML中:

代码语言:javascript
运行
复制
   <div class="toggle" toggle-class="active"></div>

据我所知,使用指令将是最合适的。在我的指令中我有这样的代码:

代码语言:javascript
运行
复制
 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');

            }
        });
    }
};

});

我遗漏了一些东西。有没有人能给点建议?我真的很感激。谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-02-14 04:21:07

您的指令可以大大简化。

代码语言:javascript
运行
复制
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');
                 };
             });
         }
     }
})
票数 0
EN

Stack Overflow用户

发布于 2016-02-13 20:12:22

正如佐藤所指出的,这甚至更容易

代码语言:javascript
运行
复制
<div ng-class="{'active':someVal}" ng-click="someVal = !someVal"></div>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35379651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档