gpt4 book ai didi

javascript - 在继续之前需要 FineUploader 方法 uploadStoredFiles 完成

转载 作者:行者123 更新时间:2023-11-30 17:43:52 25 4
gpt4 key购买 nike

快速了解一些背景知识,uploadStoredFiles() 是 FineUploader 插件中使用的一种方法,用于将附件数据异步发送到服务器路径。我也在为我的应用程序使用 AngularJS。我的问题实际上与此处发现的问题非常相似......

jQuery: wait for function to complete to continue processing?

...最大的不同是我无权访问回调函数本身。此外,我的脚本正在运行 FineUploader 作为更大表单的一部分,其中附件是可选的,因此使用 FineUploader 的“完成”回调也无济于事。

这是一个代码示例。基本上,如果没有附件,那么页面应该重新加载。如果有附件,则应上传它们,然后重新加载页面。

if(hasAttachments)
{
myuploader.uploadStoredFiles();
}

//AngularJS call to refresh page
$route.reload();

大多数时候,页面会自行刷新,并且文件会从其列表中丢失,直到我稍后进行额外的刷新。我可以对等待时间进行硬编码,但这似乎是低效和邪恶的。

欢迎提出任何建议或解决方案。我特别喜欢 Angular 风格的解决方案,但我会尽我所能。

最佳答案

我试图将我的评论总结成一个有凝聚力的答案:

Fine Uploader 具有在某些事情发生时运行代码的事件,例如文件提交给 uploader 时 (onSubmit) 或文件上传时 (onComplete) .

普通的 JavaScript 看起来像,

$(document).ready(function() {

$("#triggerUpload").click(function () {
$("#manual-fine-uploader").fineUploader('uploadStoredFiles');
});

function submitForm () {
if ($(this).fineUploader('getInProgress') == 0) {
var failedUploads = $(this).fineUploader('getUploads',
{ status: qq.status.UPLOAD_FAILED });
if (failedUploads.length == 0) {
// do any other form processing here
$("#uploader").submit();
}
}
};

// Instantiate a Fine Uploader instance:
$("#manual-fine-uploader").fineUploader({
autoUpload: false,
request: {
endpoint: "/uploads_bucket"
}
}).on("complete", function (event, id, name, response) {
submitForm.call(this);
}).on('statusChange', function (event, id, oldStatus, newStatus) {
if (newStatus === qq.status.CANCELLED) {
submitForm.call(this);
}
});
});

您可以使用 this Angluar example作为制定 Fine Uploader 指令的起点。

关于javascript - 在继续之前需要 FineUploader 方法 uploadStoredFiles 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com