1

我是主干上的新手,我需要创建一个这样的视图结构。

<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 上的所有事件?

4

1 回答 1

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);
  }
});
于 2013-01-16T22:18:39.377 回答