すべてのモジュールで参照できるグローバルオブジェクトを定義しようとしています。ただし、モジュールでは、パスを参照できず、「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
}
})
それはうまく機能します。なぜこれが機能しないのかを理解しようとしても、あまり運がありませんでした。isDemoをfalseに変更すると、他の多くのモジュールページ(main2.js、main3)を更新する必要があるため、それを必要とするすべてのモジュールに定義ブロックを貼り付けるボイラープレートではなく、globalVarsへのパスを含めることができるようにしたいと思います。 jsなど)も同様です。ありがとう!