javascript - 如何正确选择指令中的元素?

标签 javascript jquery angularjs jquery-selectors angular-directive

如果我为我的 angular 指令定义了一个 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

关于javascript - 如何正确选择指令中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36633184/

相关文章:

javascript - window.onbeforeunload 在 IE 中触发部分回发事件

angularjs - 如何在angularJs中存储一些数据以供以后使用?

javascript - 在 angularjs 中访问自定义 http 响应 header

javascript - 通过 ng-Autocomplete 中的反向地理编码获取区域和子区域名称

javascript - "Recurly.js"表单生成和 GWT/AJAX 问题

javascript - 单独文件中的 AngularJS 服务

javascript - Circliful 插件在 ng 重复内无法工作

javascript - 闭包,for 循环

jquery - IE 中的 JQuery 图像气泡问题

jquery - 悬停,影响其他元素并显示背景图像