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 に答える