1

我正在努力理解如何使用 Backbone 路由器和视图。我想要一个 URL,例如:index.html#/products/list首先调用通用视图以将基本页面脚手架插入 DOM,并显示全局徽标之类的项目。然后调用产品视图,该视图插入一些通用的“产品”DOM 元素。然后调用“列表”视图,其中显示产品列表。

如果我这样做:

var router =  Backbone.Router.extend({
      initialize : function() {
        new HeaderView({el:"#header"}).render();
      },

然后initialize仅在第一次加载页面时调用该例程。如果某些内容清除了标头,则导航回路由不会重新显示它,因为路由器已经存在,因此initialize不会再次调用。

我显然可以设置一个路由,例如:"/products/list"/调用一个函数,但是该函数需要负责绘制整个页面,这是需要在所有路由中重复的代码,并使整个事情“颠倒”。

我看过像 Marionette 这样的东西,但看起来它可能是一把大锤来破解坚果。

最后我可以完全放弃 Backbone.Router,并拥有一个大的全局视图,它通过解析 URL 将它自己的代理委托给子视图,但这也不正确!

有没有一种简单的方法来拥有这种“层次结构”的观点?

4

0 回答 0