我正在尝试定义一个可以在所有模块中引用的全局对象。但是,在模块中,我无法引用我的路径,并且说“g”不存在。
在 main1.js 中,我有这个:
requirejs.config({
paths: {
Underscore: 'lib/underscore/1.3.3/underscore.min',
Backbone: 'lib/backbone/0.9.2/backbone.min',
Globals: 'lib/backbone/ globalVars'
}
});
require([ 'views/pages', 'views/filters'], function(allPages, filters) {
filters.render();
allPages.render();
});
在 globalVars.js 中,我有这个:
(function() {
var Globals = {
isDemo: false
}
console.log('in globalvars') // this shows in my console
}).call(this);
最后,在 view/pages.js 中,我有这个:
define([
'Globals',
'Underscore',
'Backbone'
], function(g, _, Backbone){
console.log(g.isDemo) //<-- returns "TypeError: g is undefined"
如果我在 main1.js 中使用这样的定义:
define( 'Globals', function() {
return {
isDemo: true
}
})
它工作得很好。我没有太多运气试图弄清楚为什么这不起作用。我希望能够只包含指向 globalVars 的路径,而不是在需要它的每个模块中粘贴定义块的样板,因为将 isDemo 更改为 false 将需要更新许多其他模块页面(main2.js、main3.js)。 js 等)。谢谢!