如何在promise中触发click事件(在文件类型输入上)?

时间:2017-01-03 17:05:56

标签: javascript angularjs angular-promise dom-events

我有一段时间遇到这个问题,我无法在任何地方找到解决方案,基本上我试图在输入文件类型上触发click事件但是这个事件需要在promise中触发,当我试图直接在承诺内触发事件控制台记录错误说“正在进行摘要” 如果我在promise中放置一个超时,错误消失但事件没有被触发,我做这项工作的唯一方法是在promise之外添加一个超时约一秒,但我真的不想依赖于此定义超时的事件

控制器看起来像这样

scope.handleDblClick = function () {
    asyncFunction()
        .then(function (response){
            switch(response){
                case 'option1':
                    //do something
                    break;
                case 'option2':
                    document.getElementById('fileInputId').click();
                    break;
            }

        });
}

双击此文本输入时会触发此功能

<input type="text" ng-dblclick="handleDblClick()"/>

这是一个需要在promise

中触发的文件输入
<input type="file" id="fileInputId"/>

事件需要以这种方式触发,因为async函数的结果确定是否要单击输入文件或是否会采取其他操作,handleDblClick函数根据promise的响应处理不同的操作,其中一个操作包括打开文件浏览器来选择文件

1 个答案:

答案 0 :(得分:1)

我找到了自己的答案,结果是java脚本只会触发输入文件元素的对话框,如果它来自用户触发的事件处理程序并且必须被信任:)谢谢!

我将链接留在这里

https://github.com/angular/material/issues/8639