如何正确选择指令内的元素?

时间:2016-04-14 20:19:33

标签: javascript jquery angularjs jquery-selectors angular-directive

如果我为angular指令定义link函数,那么在指令中选择特定元素的最佳方法是什么?例如,如果这是我的模板url:

<div>
  <form>
    <input></input>
  </form>
</div>

我想选择input,在链接功能中引用input标记的最佳方式是什么?

我最初的想法是在id标记上加上input属性并根据它进行选择,但由于这是一个指令,我不一定知道它在哪里使用,所以无论我选择哪个ID可能不是唯一的。

1 个答案:

答案 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