Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从AngularJS指令内触发文件上载_Javascript_Angularjs - Fatal编程技术网

Javascript 从AngularJS指令内触发文件上载

Javascript 从AngularJS指令内触发文件上载,javascript,angularjs,Javascript,Angularjs,我有上传指令。我想有一个链接/按钮,将触发文件对话框,我有问题让它打开 我的指令模板有点像这样: <div> <div class="dropzone"></div> <input type="file" multiple onchange="angular.element(this).scope().setFiles(this)"> <a class="upload">Add new image</a> </d

我有上传指令。我想有一个链接/按钮,将触发文件对话框,我有问题让它打开

我的指令模板有点像这样:

<div>
 <div class="dropzone"></div>
 <input type="file" multiple onchange="angular.element(this).scope().setFiles(this)">
 <a class="upload">Add new image</a>
</div>

以及:

elem[1].triggerHandler('click');
但所有这些都给了我错误,比如:

$timeout(function() {
    elem.find('input').triggerHandler('click');
}, 0);
 undefined is not an object (evaluating 'elem[1].triggerHandler')
或者没有错误但没有活动


基本上,我希望单击A标记打开文件对话框。此时,我可以使用find()和元素名,因为它们目前是唯一的。

作为一种合理性检查,您可以尝试为您的文件输入分配一个ID,然后尝试
document.getElementById(…)。单击()
,看看是否能够触发文件对话框(在现代浏览器上应该可以)。谢谢,这让我走上了正确的轨道。原来你不能做我做的事。单击事件必须由用户启动(例如单击链接)。
 undefined is not an object (evaluating 'elem[1].triggerHandler')