我知道有很多关于使用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里面。请告诉我正确的方法。先谢谢!
Backbone.history.navigate
。 - jgillich{trigger: true}
作为第二个参数添加。 - juanra