3

私はいくつかの「li」要素を繰り返しており、そのうちのいくつかはこのような「アクティブ」クラスを持っています

<li ng-repeat="menuSubItem in menuItem.items" ng-class="{active: vm.currentMenuName == menuSubItem.name}" active-collapsible>

一方、「アクティブな」クラスに依存するいくつかのクラスを追加するディレクティブがあります。私のディレクティブはこのようなものです

directive('activeCollapsible', function() {
  return {
    restrict: 'A',
    link: function($scope, element, attrs) {

    }
  }
});

しかし、「要素」引数に「アクティブ」クラスが表示されません。(Angular の前に jQuery を既に追加しています。)

$(element).hasClass('active')

ディレクティブで「アクティブな」クラスを取得するにはどうすればよいですか?

4

1 に答える 1

4

要素にアクティブなクラスがあるか$watch、スコープで functino を使用していない可能性があります。$watch最初の部分の関数の戻り値は、ダイジェスト サイクルが実行されるたびに評価され、次に基づいて true または false の値が取得されます。element.hasClasss('active')

指令

directive('activeCollapsible', function() {
    return {
        restrict: 'A',
        link: function($scope, element, attrs) {
            $scope.$watch(function() {
                return element.hasClass('active')
            }, function(newVal) {
                if (newVal) //then it has active Class
                //do something
            });
        };
    };
});
于 2015-07-04T06:10:15.590 に答える