javascript - 主干 View 结构 : how to nest a view in a layout and delegate events

标签 javascript jquery backbone.js underscore.js

我是 backbone 的新手,我需要创建这样的 View 结构。

<header>
  <nav>...</nav>
</header>
<section id="content">
  here i want to dynamically render a sub-view with its own events..
</section>
<footer>...</footer>

当用户点击导航上的链接时, subview 会发生变化,并且它始终是不同的 subview (例如,带有新闻的 HomeView 或用于身份验证过程的 LoginView ...)

如何在不委托(delegate) LayoutView 上的所有事件的情况下实现这一点?

最佳答案

使用 Backbone.Router .不要在 View 中处理导航链接点击事件,而是将它们的 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);
  }
});

关于javascript - 主干 View 结构 : how to nest a view in a layout and delegate events,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14368811/

相关文章:

javascript - 想要我的 Canvas 画一个圆圈但结果是 eclipse

javascript - BackboneJS、RequireJS 应用程序模块可从整个项目访问

javascript - setInterval 使用 ajax 和特定的目标函数

javascript - 如何使用 Javascript 以编程方式更改 html 中的 div 位置?

jquery - jQuery .load 可以追加而不是替换吗?

node.js - Backbone 从集合中删除()

javascript - Musixmatch API 轨道搜索功能

javascript - 更改占位符的字体大小

javascript - Odoo 8 POS模块。Orderline扩展功能

javascript - backbone.js - "new"关键字后需要括号吗?