如何在指令中获取 ng-class 值
how to get ng-class value in directive
我有一些重复的 'li' 元素,其中一些有 'active' class 像这样
<li ng-repeat="menuSubItem in menuItem.items" ng-class="{active: vm.currentMenuName == menuSubItem.name}" active-collapsible>
另一方面,我有一个指令添加一些 classes 取决于 'active' class,我的指令是这样的
directive('activeCollapsible', function() {
return {
restrict: 'A',
link: function($scope, element, attrs) {
}
}
});
但我在 'element' 参数中没有看到 'active' class。 (我已经在Angular前加了jQuery。)
$(element).hasClass('active')
如何在我的指令中得到 'active' class?
你可以得到元素有活动 class 或不使用 $watch
functino on scope,$watch
第一部分中的函数 return 每次在 digest 时都会被评估循环 运行 然后你将根据 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
});
};
};
});
我有一些重复的 'li' 元素,其中一些有 'active' class 像这样
<li ng-repeat="menuSubItem in menuItem.items" ng-class="{active: vm.currentMenuName == menuSubItem.name}" active-collapsible>
另一方面,我有一个指令添加一些 classes 取决于 'active' class,我的指令是这样的
directive('activeCollapsible', function() {
return {
restrict: 'A',
link: function($scope, element, attrs) {
}
}
});
但我在 'element' 参数中没有看到 'active' class。 (我已经在Angular前加了jQuery。)
$(element).hasClass('active')
如何在我的指令中得到 'active' class?
你可以得到元素有活动 class 或不使用 $watch
functino on scope,$watch
第一部分中的函数 return 每次在 digest 时都会被评估循环 运行 然后你将根据 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
});
};
};
});