我有一些重复的' 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;我的指令中的课程?
答案 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
});
};
};
});