继续之前需要FineUploader方法uploadStoredFiles完成
Need FineUploader Method uploadStoredFiles to Complete Before Proceeding
对于一些快速后台,uploadStoredFiles()是FineUploader插件中使用的一种方法,用于将附加的文件数据异步发送到服务器路径。我还在我的应用程序中使用AngularJS。事实上,我的问题与这里的问题非常相似。。。
jQuery:等待函数完成继续处理?
最大的区别是我不能访问回调函数本身。此外,我的脚本将FineUploader作为一个较大表单的一部分运行,其中附件是可选的,因此使用FineUpload"completed"回调也没有多大帮助。
这是一个代码示例。基本上,如果没有附件,那么页面应该重新加载。如果有附件,应该上传,然后重新加载页面。
if(hasAttachments)
{
myuploader.uploadStoredFiles();
}
//AngularJS call to refresh page
$route.reload();
大多数情况下,页面会自行刷新,文件也会从列表中丢失,直到我稍后再进行刷新。我可以硬编码一段等待时间,但这似乎效率低下,而且很糟糕。
欢迎提出任何建议或解决方案。我特别喜欢Angular式的解决方案,但我会尽我所能。
我试图将我的评论总结成一个连贯的答案:
Fine 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);
}
});
});
您可以使用这个Angluar示例作为制作Fine Uploader指令的起点。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- toLocaleDateString和toLocaleString方法不尊重机器时区
- 有条件更新d3.js力图中节点的最佳方法
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- jQuery插件-从插件中调用公共方法