我正在使用backbone.js和require.js。我有一个文件依赖的脚本,但问题是在执行我的脚本之前没有加载文件。因此,未定义函数。这是代码示例:
define([
'jquery',
'jqueryUi',
'holder',
'knob',
'jquery.ui.widget',
'iframeTransport',
'fileupload',
'knobScript',
], function($, ui, Holder) {
$(document).ready(function() {
$('#upload').fileupload({...}); // This one is unedefined because the script from the file fileupload is not completely loaded
});
});
在使用函数(functionFromFileupload)执行脚本之前,是否有人有一个解决方案可以确保在define中调用的脚本fileuplaod已完全加载?
感谢您的帮助
答案 0 :(得分:0)
补充Evgeniy的评论:问题不在于你的函数后加载fileupload
。在运行你的函数之前将加载,这是Require的合约。 (如果你可以确认它没有,那么它可能是一个配置错误或者可能是一个需要的错误。)
最有可能的问题是,有时候,fileupload
可能会在 jQuery之前加载。因此,它找不到要插入的jQuery
对象,$(...).fileupload(...)
失败。在Require配置中使用shim,例如为:
require.config({
...
shim: {
fileupload: {
deps: ["jquery"]
}
...
}
...
});
您可能还需要填充其他内容,例如: jQueryUI的。