我有这种配置:
require.config({
paths: {
jquery: '../libs/jquery/dist/jquery',
uicore: '../libs/jquery-ui/ui/jquery.ui.core',
uiwidget: '../libs/jquery-ui/ui/jquery.ui.widget',
uidialog: '../libs/jquery-ui/ui/jquery.ui.dialog'
},
shim: {
uicore: ['jquery'],
uiwidget: ['uicore'],
uidialog: ['uiwidget']
},
urlArgs: "bust=" + (new Date()).getTime()
});
require(['uidialog'], function (d) {
console.log(d); // undefined;
});
那么,我的代码出了什么问题?为什么d未定义?每个文件都已下载,jquery的版本为2.1。
请帮助:(
答案 0 :(得分:0)
在main.js中,您可以使用require()加载任何其他脚本 需要跑。这确保了单个入口点,因为数据主要 您指定的脚本是异步加载的。
require([“helper / util”],function(util){ //加载scripts / helper / util.js时调用此函数。 //如果util.js调用define(),则直到触发此函数 // util的依赖项已加载,而util参数将保存 //“helper / util”的模块值。 });
我建议,例如:
require.config({
baseUrl: 'js/lib',
paths: {
jquery: 'jquery-1.9.0'
}
});
然后:
require(['jquery'], function( jq ) {
console.log( jq ) // OK
});
您的配置中可能有错误的路径..
你有没有尝试过:
define(['jquery'], function (jq) {
return jq.noConflict( true );
});
答案 1 :(得分:0)
答案很简单:是导出$
。像这样:
'ui.core': {
deps: ['jquery'],
exports: '$'
},
'ui.widget': {
deps: ['ui.core'],
exports: '$'
},
'ui.button': {
deps: ['ui.core'],
exports: '$'
},
'ui.dialog': {
deps: ['ui.widget', 'ui.button'],
exports: '$'
}