Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干视图层次结构/区域_Backbone.js - Fatal编程技术网

Backbone.js 主干视图层次结构/区域

Backbone.js 主干视图层次结构/区域,backbone.js,Backbone.js,我正在努力理解如何使用主干路由器和视图。我想要一个URL,比如:index.html/products/list,首先调用一个通用视图,将基本页面支架插入DOM,并显示全局徽标之类的项目。然后调用products视图,该视图插入一些通用的ProductDOM元素。然后调用列表视图,该视图显示产品列表 如果我这样做: var router = Backbone.Router.extend({ initialize : function() { new HeaderVi

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

如果我这样做:

var router =  Backbone.Router.extend({
      initialize : function() {
        new HeaderView({el:"#header"}).render();
      },
然后,只有在第一次加载页面时才调用初始化例程。如果有东西清除了报头,那么导航回路由不会重新显示它,因为路由器已经存在,因此不会再次调用initialize

很明显,我可以设置如下路径:/products/list/来调用函数,但该函数需要绘制整个页面,这是需要在所有路径中重复的代码,并使整个过程颠倒过来

我看过木偶之类的东西,但那看起来像是一把大锤敲开一颗坚果

最后,我可以完全放弃主干路由器,并拥有一个大的全局视图,它通过解析URL将自己的委托给子视图,但这也不可能是正确的


有没有一种简单的方法可以获得这种层次结构的视图?

没有,您没有遗漏任何内容。你必须自己创造一些东西。最简单的方法是禁止您的用户直接访问此页面,因此要确保您的视图设置正确。如果您愿意,我可以输入一些关于主干路由器行为的一般信息。可能有一些你不知道的东西可以帮助你弄清楚你要做什么。我希望用户能够直接链接到页面,所以不幸的是,这不是一个选项。我想我会多看看木偶。谢谢不幸的是,我不认为木偶增加了路由器的任何扩展。