Backbone.js 如何组织跨页面通用的视图组?

Backbone.js 如何组织跨页面通用的视图组?,backbone.js,backbone-views,backbone-routing,Backbone.js,Backbone Views,Backbone Routing,假设您有一组主干视图,这些视图组合在页面上,以创建一个相当复杂的小部件,它将出现在多个页面上。(举例来说,每个输入都是自己的视图,可能有自己复杂的行为。)但是,由于a/b测试,小部件在每个页面上可能不完全相同,一些内部视图可能不同。。。但在大多数页面上,它们都是相同的 我们计划为每个页面配备一个主干控制器。我们希望减少复制/粘贴,因为复制每个页面上的小部件所需的所有视图的实例化,但我们还希望能够灵活地交换特定页面上的单个视图以进行a/b测试 到目前为止,其中一个建议是创建“元”视图(表示整个表单

假设您有一组主干视图,这些视图组合在页面上,以创建一个相当复杂的小部件,它将出现在多个页面上。(举例来说,每个输入都是自己的视图,可能有自己复杂的行为。)但是,由于a/b测试,小部件在每个页面上可能不完全相同,一些内部视图可能不同。。。但在大多数页面上,它们都是相同的

我们计划为每个页面配备一个主干控制器。我们希望减少复制/粘贴,因为复制每个页面上的小部件所需的所有视图的实例化,但我们还希望能够灵活地交换特定页面上的单个视图以进行a/b测试

到目前为止,其中一个建议是创建“元”视图(表示整个表单),实例化所有子视图(表单元素),如果需要,您可以使用其他子视图构建元视图。然而,这引入了一种奇怪的视图层次结构,并且可能在元视图中的视图之间存在某种耦合


人们通常如何处理这个问题

我很想听听您为什么认为您的提案会导致奇怪的视图层次结构。对我来说,各种子视图的元视图的想法似乎非常有意义

至于视图的耦合,您可以通过确保通过共享模型和集合的更改所导致的事件或通过

我肯定会看看哪个(直接从文档中)是一个用于Backbone.js的复合应用程序库,它旨在简化大规模JavaScript应用程序的构建。它包括一个事件聚合器以及一些用于创建复杂视图的漂亮构造


您可能会发现其中的有趣之处,正如我想象的那样,您可以使用它从每个页面控制器定义元视图的确切配置

我真的不明白木偶是如何工作的,但我想这可能是我一直在寻找的答案。谢谢你的指点@丹尼斯木偶为你工作了吗?还正在寻找使用Backbone.js进行A/B测试的解决方案