如何正确选择指令中的元素
How to properly select an element inside a directive?
如果我为我的角度指令定义了一个link
函数,那么在指令中选择特定元素的最佳方式是什么?例如,如果这是我的模板url:
<div>
<form>
<input></input>
</form>
</div>
并且我想选择input
,在我的链接函数中获得对input
标签的引用的最佳方式是什么?
我最初的想法是在input
标签上放一个id
属性,并根据它进行选择,但由于这是一个指令,我不一定知道它在哪里使用,所以我选择的任何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);
}
};
});
以下是可以与元素对象一起使用的jqlite函数列表https://docs.angularjs.org/api/ng/function/angular.element
相关文章:
- 指令的模板必须只有一个根元素:With restrict E&替换true
- 在元素指令上添加 css
- replace:true 如何与元素指令一起使用
- 防损层,从角度元素指令传递属性指令
- 角度:在元素指令上添加属性指令
- 如何在 angularjs 中验证元素指令
- 删除对象时执行元素指令动画的角度方式
- 从元素指令中的路由提供程序获取参数
- 基于会话服务的隐藏/显示元素指令-AngularJS
- AngularJS:从控制器中访问元素指令的属性
- 自定义元素指令和属性
- 如何在元素指令上使用ng-if来有条件地调用模块
- 将属性指令传递给元素指令
- 如何在AngularJS中以编程方式计算HTML元素(指令)的属性名
- 正在包装集合指令中元素指令的模板
- 无法正确使用元素指令
- Angularjs嵌套元素指令
- 使用 AngularJS 在选择元素指令中触发消息“onfocusleave”的“console.log”
- Angular自定义元素指令没有显示在屏幕上
- 带ng-init的AngularJS元素指令在视图渲染之前运行