如何在$ scope。$ on中停止方法执行,直到上传结束

时间:2018-10-01 10:43:27

标签: javascript angularjs xmlhttprequest umbraco

我正在尝试通过表单保存点击上传一批文件。该方法应等到文件上传结束后再进行保存。现在,该方法不再等待,而是在文件上传之前保存。

这是我的代码

$scope.$on("formSubmitting", function (ev, args) {
        $scope.uploadPendingFiles();
    });

uploadPendingFiles();正在执行XMLHttpRequest发送。

有什么想法吗?

编辑

根据建议,更多信息:

在表单上,​​我可以选择一些要上传的文件,但是仅当用户单击“保存”按钮时,才开始上传。父控制器在保存单击时广播 formSubmitting ,我想显示加载的gif,直到所有文件都被上传。

2 个答案:

答案 0 :(得分:1)

@TestzWCh,看来您需要使用promise。上载方法(带有http-request)必须返回$q.defer().promise,您将使用以下方法:

FileService.uploadingMethodPromise().then(function(result){ // do your logic with result -- enable Save button, or send saving request.. })

我能为您的任务做些什么吗?

答案 1 :(得分:0)

由于您的任务基于旧版代码,因此解决方案可以使用preventDefault()方法处理click提交按钮事件。

因此,我已经准备好sample,以描述您的情况(请说一下是否有误会)。

关于事件传播,您可以在此article中读到几句话。

希望这会有所帮助!