0

ルーターをロードするためのアプリモジュールがあります。アプリは、必要なモジュールへの依存関係を定義し、それらを匿名関数に入れます。この関数内では、ルーターが初期化されています。router-module が Backbone への依存関係も定義し、それを匿名関数に入れる場合、Backbone は router-module 内では使用できません。どうして?

エラー:

ここに画像の説明を入力

起動順序は次のとおりです。

ここに画像の説明を入力

これは私のアプリです:

require.config({
paths: {
    jquery: 'jquery',
    underscore: 'underscore',
    backbone: 'backbone',
    mustache: 'mustache',
    router: 'router'
},
shim: {
    'underscore': ['jquery'],
    'backbone': ['underscore'],
    'router' : ['backbone'],
    'mustache': ['backbone']   } 
});

 define([
'jquery',
'underscore',
'backbone',
'mustache',
'router'
],
function($, _, Backbone, Mustache, Router) {
var initialize = function(){
    console.log("app initialized");
    Router.initialize();
};
return { initialize: initialize};
});

定義する私のルーター:

define([
'jquery', 
'underscore',
'backbone',
'view'
],
function ($,_,Backbone,View) {

console.log("Router defined");

var initialize = function () {
    console.log("router initialized");
    //Doing stuff on Backbone
};
return { initialize: initialize };
});

ルーターモジュール内のバックボーンへの参照を削除すると、それを使用できます。

編集:

メインファイルは次のとおりです。

require([
   'app',
], function(App){
   App.initialize();
});
4

1 に答える 1