Fileupload不能与RequireJS一起使用

时间:2015-01-05 15:11:46

标签: javascript jquery asp.net file-upload requirejs

在使用requirejs加载fileupload时遇到问题。它给我的错误是:

TypeError: this._on is not a function

我想这是因为fileupload也需要加载jquery.ui.widget。 所以我尝试导入lib,但我似乎无法做到这一点。任何人都可以帮我如何正确加载它?

这是代码:

    require.config({
paths: {
    'jQuery': 'lib/jquery-1.10.2.min',
    'jQuery-ui': 'lib/jquery-ui-1.10.3', 
    'jQuery-ui-widget' : 'jquery.ui.widget',
    'bootstrap': 'lib/bootstrap.min',
    'jquery-iframe': 'jquery.iframe-transport',
    'fileupload': 'jquery.fileupload',
},
shim: {
    'jQuery': {
        exports: '$'
    },
    'jQuery-ui': {
        deps: ['jQuery'],
        exports: '$'
    },
    'jQuery-ui-widget': {
        deps: ['jQuery', 'jQuery-ui-widget']
    },
    'bootstrap': {
        deps: ['jQuery', 'jQuery-ui']
    },
    'fileupload': {
        deps: ['jQuery', 'jQuery-ui', 'jquery-iframe']
    }
},
// only for development purporses:
urlArgs: "bust=" + (new Date()).getTime()

}); require(['jQuery','jQuery-ui','bootstrap','layout','menu','modal','table','form','fileupload'],function($,jqueryUi,_bootstrap,布局,菜单,模态,表格,表格,文件上载){

$(document).ready(function () {...

1 个答案:

答案 0 :(得分:0)

您的配置存在多个问题:

  1. jQuery不需要垫片,使用垫片不需要垫片会造成麻烦。

  2. jQuery将其模块名称硬编码为jquery(全部小写),因此您无法在名称jQuery下引用它。好吧,您可以使用map配置将jQuery映射到jquery,但您的配置中目前没有map。我建议全面使用jquery,这是我看到的每个项目中使用RequireJS和jQuery的当前做法。

  3. 我还建议在配置中使用enforceDefine: true,以便RequireJS更好地诊断模块加载失败。