如果我为angular指令定义link
函数,那么在指令中选择特定元素的最佳方法是什么?例如,如果这是我的模板url:
<div>
<form>
<input></input>
</form>
</div>
我想选择input
,在链接功能中引用input
标记的最佳方式是什么?
我最初的想法是在id
标记上加上input
属性并根据它进行选择,但由于这是一个指令,我不一定知道它在哪里使用,所以无论我选择哪个ID可能不是唯一的。
答案 0 :(得分:4)
最好的方法是使用angular元素对象,它内置了jqlite函数,对于一个不是唯一的元素或jQlite不支持的东西,你总是可以得到纯DOM并使用querySelector ej:
app.directive("directiveName",function()
{
return{
template : "<div><span class='aclass'><button>hi</button></span></div>",
link ( scope, ele, attr){
var a = ele.find('button');
console.log(a);
var b= ele[0].querySelector('.aclass') //element[0] for the DOM
console.log(b);
}
};
});
这是一个可以与元素对象一起使用的jqlite函数列表 https://docs.angularjs.org/api/ng/function/angular.element