我是骨干的新手,我需要创建一个像这样的视图结构。
<header>
<nav>...</nav>
</header>
<section id="content">
here i want to dynamically render a sub-view with its own events..
</section>
<footer>...</footer>
当用户点击导航上的链接时,子视图会发生变化,并且它始终是一个不同的子视图(带有新闻的HomeView或用于身份验证过程的LoginView,例如...)
如何在不委托LayoutView上的所有事件的情况下实现这一目标?
答案 0 :(得分:2)
使用Backbone.Router
。而不是在视图中处理导航链接点击事件,而是将他们的href
属性与路线匹配。
因此,如果你有这样的导航设置:
<nav>
<a href="#home">Home</a>
<a href="#login">Login</a>
</nav>
您的路由器看起来像这样:
Backbone.Router.extend({
routes: {
home: 'homePage',
login: 'loginPage'
},
home: function() {
$("#content").html(new HomeView().render().el);
},
login: function() {
$("#content").html(new LoginView().render().el);
}
});