【问题标题】:How to stop method execution in $scope.$on until upload ends如何在 $scope.$on 中停止方法执行,直到上传结束
【发布时间】:2019-03-06 11:06:44
【问题描述】:

我正在尝试在表单保存单击时上传一批文件。该方法应该等到文件上传结束后再进行保存。现在该方法在文件上传之前不会等待并保存。

这是我的代码

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

uploadPendingFiles();正在做 XMLHttpRequest 发送。

知道怎么做吗?

编辑

按照建议,更多信息:

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

【问题讨论】:

  • 您的信息对我来说不完整。我明白你的想法,但仍然无法猜测你想如何实现它。您正在广播上传活动吗?您是否打算在另一个承诺的已解决回调上触发请求?

标签: javascript angularjs xmlhttprequest umbraco


【解决方案1】:

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

所以我准备了sample,描述你的情况(请说明其中是否有误解)。

关于事件传播的几句话您可以在article 中阅读。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    @TestzWCh,看来,你需要使用承诺。上传方法(带有 http-request)必须返回$q.defer().promise,您将像这样使用:

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

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

    【讨论】:

    • 由于它是遗留代码,我无法真正将其更改为像这样链接它,感谢您的努力
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2016-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多