Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 在“文件”对话框之前允许模式对话框_Javascript_Angularjs_File Io_Event Bubbling - Fatal编程技术网

Javascript 在“文件”对话框之前允许模式对话框

Javascript 在“文件”对话框之前允许模式对话框,javascript,angularjs,file-io,event-bubbling,Javascript,Angularjs,File Io,Event Bubbling,我想延长概述的指令 本质上-我想做的是,当用户按下“打开文件”文件输入时,它将显示一个“这将放弃更改”模式对话框 如果用户按下“取消”,则不应显示“文件”对话框,但如果按下“继续而不保存”或“保存更改并继续”,则只应显示“选择文件”对话框 我希望能够将模态创建函数作为一个指令参数传递,以便在打开文件对话框之前使用不同的模态 用法示例: <label class="btn btn-default" for="fileOpen"> Open File </label>

我想延长概述的指令

本质上-我想做的是,当用户按下“打开文件”文件输入时,它将显示一个“这将放弃更改”模式对话框

如果用户按下“取消”,则不应显示“文件”对话框,但如果按下“继续而不保存”或“保存更改并继续”,则只应显示“选择文件”对话框

我希望能够将模态创建函数作为一个指令参数传递,以便在打开文件对话框之前使用不同的模态

用法示例:

<label class="btn btn-default" for="fileOpen">
    Open File
</label>
<input 
      style="display: none" 
      type="file"
      fileread="onFileRead" 
      id="fileOpen" 
      name='file' 
      prefn="openModal"
 />
按原样-问题在于模式与“打开文件”对话框同时出现

我们可以使用
event.preventDefault()阻止文件对话框打开(取消注释),但我不知道如何恢复“更改”事件


是否可以手动触发更改事件

您想单击另一个按钮,而不是文件输入标签。用户将看不到文件输入或其标签

然后,在确认模式。。。触发对文件输入的单击

下面使用从模态控制器到指令的角度事件广播


在指令replace
element.bind('单击…

 scope.$on('init-file-select', function(){          
      element[0].click();
 });
在模态控制器中,开始修改如下所示:

app.controller("AbandonChangesModalCtrl", function($scope,  $modalInstance, $rootScope){

    $scope.yes = function(){
       // this could also be done from main controller in `result` promise callback
       $rootScope.$broadcast('init-file-select')
        $modalInstance.close('yes');
    }

如果我想有多个打开的文件对话框怎么办?我想我可以将事件名称作为属性传入。
 scope.$on('init-file-select', function(){          
      element[0].click();
 });
app.controller("AbandonChangesModalCtrl", function($scope,  $modalInstance, $rootScope){

    $scope.yes = function(){
       // this could also be done from main controller in `result` promise callback
       $rootScope.$broadcast('init-file-select')
        $modalInstance.close('yes');
    }