我正在使用Backbone.js require.js underscore.js来构建一个应用程序。在我的javascript中,我有我的mainrouter.js文件,它处理菜单选择。
应用程序分为几个部分,我希望每个部分都有一个sectionRouter.js文件。
出于某种原因,当尝试加载一个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
};
});
部分路由器:
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?
答案 0 :(得分:0)
您已将bootstrap添加到define函数参数列表中,但该列表与require数组中的模块不匹配。所以SectionRouter没有值(这就是为什么你得到“未定义”)。
尝试:
define([
'jquery',
'underscore',
'backbone',
'mainRouter', // Request mainRouter.js
'sectionRouter' // this is the
'bootstrap'
], function($, _, Backbone, Router,SectionRouter, Bootstrap){
可能还有其他事情需要改进你想要达到的目标,但这会回答你在这里提出的问题。