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

您可以让元素具有活动类或不在作用域上使用$watchfunctino,$watch每次摘要循环运行时都会评估第一部分中的函数返回,然后您将根据以下值获得真值或假值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 回答