Jquery requireJS和名称空间
我试图使用带有Jquery requireJS和名称空间,jquery,requirejs,Jquery,Requirejs,我试图使用带有requireJS的名称空间,但遇到了一些问题。到目前为止,我已经: require.config({ paths: { jquery: [ 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min' ], jqueryUI: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.
requireJS
的名称空间,但遇到了一些问题。到目前为止,我已经:
require.config({
paths: {
jquery: [
'http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min'
],
jqueryUI: 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min',
main: 'http://mysite.com/main'
}
});
然后我试着加载
require(['jquery', 'main'], function($) {
myApp.core.init();
});
其中main.js
包含我的名称空间变量,如myApp
——但是它告诉我们jQuery对于myApp
是未定义的,这意味着我的所有代码都在
(function(myApp, $, undefined) {
}(window.myApp = window.myApp || {}, jQuery));
这行吗?有人能帮忙吗?你可能应该仔细阅读一下。要使其正常工作,您需要将main.js重新分解为模块定义。比如说
define(['jquery'], function($) {
// Setup my module
return {
// return an object, or function etc
}
});
// Nicer way - http://requirejs.org/docs/whyamd.html#sugar
define(function(require){
var $ = require('jquery');
return {
}
});
如果,由于某种原因,您无法修改RequireJS中的main.js代码。例如:
require.config({
shim: {
'main': {
deps: ['jquery'],
exports: 'myApp'
}
}
});
这是一个模块模板(始终使用类似的内容)
这是真的密码吗?如果是,那么您使用的是错误的requirejs。。。
define(function(require){
var $ = require('jquery');
var myApp = function(){
};
// etc...
return myApp;
}