如果我为我的角度指令定义了link
函数,那么在指令内选择特定元素的最佳方法是什么?例如,如果这是我的模板网址:
<div>
<form>
<input></input>
</form>
</div>
并且我想选择
input
,在链接函数中获得对input
标记的引用的最佳方法是什么?我最初的想法是在
id
标记上放置一个input
属性,然后基于该属性进行选择,但是由于这是一条指令,因此我不一定知道它的使用位置,因此,无论我选择什么id都可能不是唯一的。 最佳答案
最好的方法是使用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);
}
};
});
这是可以与element对象一起使用的jqlite函数的列表
https://docs.angularjs.org/api/ng/function/angular.element