是否可以使用牵线木偶将多个模型绑定到视图中?

时间:2016-05-23 17:41:00

标签: backbone.js marionette

或者我应该为每个模型创建一个视图?我的意思是单独使用骨干我正在做某种“renderSubview”,使用牵线木偶这是毫无意义的,我只是应该避免这种情况吗?

将木偶视图绑定到多个模型是不是很糟糕? (并根据多个模型更新更新其模板的不同部分?)

很多人

1 个答案:

答案 0 :(得分:2)

Marionette并没有给你任何工具来做到这一点,但它是Backbone顶部的薄层;你描述的方法会很好。

但是,如果你的子视图不是很简单,那么最好使用木偶LayoutView。这样你就可以从封装和DOM隔离中受益(因此子视图不会干扰彼此的事件)。

简单的子视图,Backbone-style

这种方法适用于琐碎的子视图 - 可能使用非常简单的模板和很少的用户交互。除了您描述的方法之外,您不需要任何其他内容:

您可以将renderSubViewX方法添加到任何Marionette视图类型(甚至是香草Backbone.View)。它们看起来像典型的Backbone render方法 - 调用模板函数或创建一些DOM节点并将它们插入到文档中。使用this.listenTo(this.model1, "change", this.renderSubView1, this)重新渲染更改。

LayoutView

如果子视图更复杂(可能它们允许非平凡的用户交互),您将从为每个模型创建单独的ItemView中受益。使用Marionette LayoutView作为父视图。

Derick Bailey的blog post on Layouts有点过时但提供了很好的整体介绍。