如何创建一个匹配多个名称的Angular指令?我有一系列具有不同ID的<div>
元素(数百个)。我想编写一个只匹配其中一些ID的指令。
这样的指令不是一个选项,因为它将为我拥有的所有大量<div>
元素调用。
directive('div', function(){
return {
restrict: 'e',
link: function(scope, ele, attr) {
if (attr.id !== 'divX' || attr.id !== 'divY')
return;
processElement();
}
}
})
此外,我不能继续为我需要的所有ID编写指令。向选定的<div>
元素添加另一个属性也不实用。
angular指令是否提供支持匹配多个名称的任何功能?
像
这样的东西directive('divX', 'divY', function(){
//...
})
答案 0 :(得分:1)
严格回答你的问题:
angular指令是否提供支持匹配多个名称的任何功能?
如果按名称表示 id ,则为NO,Angular不提供将指令关联到 ID 的可能性,即使是单身。
如果您希望指令定位一些 div 元素,则应该为所有这些元素添加共享类,然后使用以此为目标的指令< strong> class :
<div id="divX" class="user">John</div>
<div id="divY" class="user">Paul</div>
和
directive('user', function(){
return {
restrict: 'C',
link: function(scope, ele, attr) {
processElement();
}
};
});
答案 1 :(得分:0)
angular.module('ui.directives', [])
.directive('divX', myDirective)
.directive('divY', myDirective);
它适用于你的情况吗?