在使用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 () {...
答案 0 :(得分:0)
您的配置存在多个问题:
jQuery不需要垫片,使用垫片不需要垫片会造成麻烦。
jQuery将其模块名称硬编码为jquery
(全部小写),因此您无法在名称jQuery
下引用它。好吧,您可以使用map
配置将jQuery
映射到jquery
,但您的配置中目前没有map
。我建议全面使用jquery
,这是我看到的每个项目中使用RequireJS和jQuery的当前做法。
我还建议在配置中使用enforceDefine: true
,以便RequireJS更好地诊断模块加载失败。