Backbone.js + require.js:等到文件加载完毕

时间:2014-09-17 07:28:01

标签: javascript backbone.js requirejs

我正在使用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已完全加载?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

补充Evgeniy的评论:问题不在于你的函数后加载fileupload。在运行你的函数之前加载,这是Require的合约。 (如果你可以确认它没有,那么它可能是一个配置错误或者可能是一个需要的错误。)

最有可能的问题是,有时候,fileupload可能会在 jQuery之前加载。因此,它找不到要插入的jQuery对象,$(...).fileupload(...)失败。在Require配置中使用shim,例如为:

require.config({
    ...
    shim: {
        fileupload: {
            deps: ["jquery"]
        }
        ...
    }
    ...
});

您可能还需要填充其他内容,例如: jQueryUI的。