3

我知道在 AngularJS 应用程序中不使用 jQuery 是一种很好的做法,但努力找出 AngularJS 的执行方式:

$scope.clickEvent = function(event) {
    if($(event.target).hasClass('icon-closed')) {
        $(event.target).removeClass('icon-closed')
        $(event.target).addClass('icon-opened')
    } else {
        $(event.target).removeClass('icon-opened')
        $(event.target).addClass('icon-closed')
    }
}

我的 HTML:

<div class="component-title icon-closed" 
     ng-model="collapsed" 
     ng-click="collapsed=!collapsed;clickEvent($event)">{{component.name}}</div>

collapsed代码显示/隐藏面板,并且 div 在循环中,因此与函数ng-repeat无关。clickEvent

我希望我可以从事件对象中获取类名并在不使用 jQuery 的情况下更改它们。有任何想法吗?

谢谢 :)

4

1 回答 1

5

您可以使用该ngClass指令来实现这一点。

<div class="component-title"
     ng-class="{'icon-closed':collapsed,'icon-opened':!collapsed}"
     ng-model="collapsed"
     ng-click="collapsed=!collapsed">{{component.name}}</div>

更多信息ngClass可以在这里找到。

于 2014-02-25T11:20:14.807 回答