0

私はBackbone.jsrequire.jsunderscore.jsを使用してアプリケーションを構築しています。私のjavascriptには、メニュー選択を処理するmainrouter.jsファイルがあります。

アプリケーションはいくつかのセクションに分かれており、セクションごとにsectionRouter.jsファイルが必要でした。

何らかの理由で、1つのsectionRouter.jsを読み込もうとすると、次のエラーが発生します

TypeError:SectionRouterは未定義です

これは私のmainApplication.jsファイルのコードです

define([ 
     'jquery', 
     'underscore', 
     'backbone', 
     'mainRouter', // Request mainRouter.js 
     'bootstrap',
     'sectionRouter'  // this is the
 ], function($, _, Backbone, Router,SectionRouter){ 
var initialize = function(){ // Pass in our Router module and call it's initialize function
    Router.initialize();
    initializeAnalytics();
    //Initiate a new history and controller class
    Backbone.emulateHTTP = true;
    Backbone.emulateJSON = true;           
    Backbone.history.start();                
}; 

var initializeAnalytics = function(){
    SectionRouter.initialize();
};

var initializeAll = function(){
    initialize();
    initializeAnalytics();
};

return { 
    initialize: initialize
};  
}); 

sectionRouterの一部:

 var SectionRouter= Backbone.Router.extend({
            //restfulUrl:"http://localhost:8080/myapp/", //This is the application service 
                            //Routes tell the app what to do
            routes:{
                "analytics/consumptions":"consumptionsActions",
                "analytics/contents":"contentsActions",
                "analytics/users":"usersAction"                    
            }               
        });

 var initialize = function (){              
            var sectionConsoleRouter= new SectionRouter;                
            //map consumptionsAction routing
            sectionConsoleRouter.on('route:consumptionsActions', function(){                    
                SeriesStorage(url to call);                  
             });
   };

  return { 
            initialize: initialize
        }; 

mainRouter.jsファイルと他のsectionRouter.jsファイルを一緒にロードできるかどうか教えてください。

編集

mainRouter内でsectionRouterを初期化することは可能ですか?

4

1 に答える 1

0

定義関数パラメーターのリストにブートストラップを追加しましたが、リストがrequire配列のモジュールと一致しません。したがって、SectionRouterには値がありません(これが「未定義」になる理由です)。

試す:

define([ 
     'jquery', 
     'underscore', 
     'backbone', 
     'mainRouter', // Request mainRouter.js 
     'sectionRouter'  // this is the
     'bootstrap'
 ], function($, _, Backbone, Router,SectionRouter, Bootstrap){ 

あなたが達成しようとしていることを改善するためにおそらく他のことがありますが、これはあなたがここで尋ねた質問に答えます。

于 2013-03-20T09:46:16.970 に答える