如何在指令中获取ng-class值

时间:2015-07-04 05:45:16

标签: javascript angularjs angularjs-directive ng-class angularjs-ng-class

我有一些重复的' li'元素,其中一些已经“活跃”了。像这样的课程

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

在另一方面,我有一个指令,要添加一些依赖于“活跃”的课程。 class,我的指令是这样的

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

    }
  }
});

但我没有看到“活跃的”#39;课程中的元素&#39;论点。 (我已经在Angular之前添加了jQuery。)

$(element).hasClass('active')

我如何才能“活跃”&#39;我的指令中的课程?

1 个答案:

答案 0 :(得分:4)

你可以在范围内使用$watch functino来获取元素是否具有活动类,$watch第一部分中的函数返回将在每次消化周期运行时得到评估&amp;那么你将在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
            });
        };
    };
});