Angular的element.find()无法找到嵌套的输入元素

时间:2017-04-09 08:44:44

标签: javascript angularjs element

我使用以下模板(简化)创建指令:

<table>
    <tr>
        <td>
            <input type="text"/>
        </td>
        <td>
            <input type="text"/>
        </td>
    </tr>
</table>

在指令的链接函数中,我想在输入中添加侦听器,但是我无法获取输入元素。该指令如下所示:

angular.module('app').directive('myDirective', function(){
    return{
        restrict: 'E',
        templateUrl: '<path-to-above-html-file>',
        link: function(scope, element, attr){
            var inputs = element.find('input'); // Returning empty JQLite object
        }
    };
});

根据Angular元素文档,find()方法应该能够找到嵌套元素。但为什么这不起作用呢?

我试图在控制台中打印元素并循环播放所有子元素,输入确实存在。

感谢任何帮助!

1 个答案:

答案 0 :(得分:-1)

如果要访问元素,请使用querySelector()。但请注意,querySelector仅返回第一个子元素。

如果您希望所有元素都使用querySelctorAll(),如下所示

element.querySelectorAll("input")