我知道有很多关于使用 Backbone.js 组织应用程序的教程/信息。我正在这些教程的帮助下逐渐创建一个。我似乎无法理解路由器的概念。好吧,我知道路由器是起点(并告诉应用程序的状态),最好避免在那里放置更多逻辑。
我有一个路由器。我的应用程序首先会加载页眉、页脚和页面的主要部分。在主要部分,首先,我应该登录用户。要加载登录页面,我会这样做:
var AppRouter = Backbone.Router.extend({
initialize : function() {
var headerView = new HeaderView({el:$('#header')});
headerView.render;
var footerView = new FooterView({el:$('#footer')});
footerView.render;
var loginView = new LoginView({el:$('#login')});
loginView.render;
},
routes : {
"inbox" : "inbox",
"sentbox : "sentbox"
},
inbox : function() {
// ...
},
sentbox : function() {
// ...
}
});
app = new AppRouter();
Backbone.history.start();
登录成功后,会加载邮件页面。MailView 有一些事件可以显示收件箱,例如发件箱。
events: {
"click .inbox": "showInbox",
"click .sentbox": "showSentbox",
},
showInbox : function() {
// app.route() or app.inbox() - ?
}
此时,我希望路由器分别显示../#inbox
和../#sentbox
。我想知道我是否应该在这里调用路由器的一种方法来在地址栏中显示它。为什么我感到困惑是因为据说使用一个路由器比使用更多更好。如果我这样做,我的AppRouter
情况会更复杂。另一个问题是如果用户直接输入地址,我应该加载那个页面。我认为它需要将逻辑放在AppRouter中。
请在这里告诉我正确的方法。预先感谢!