是否可以使用 marionette 将多个模型绑定到一个视图?

Is it possible to bind several models to a view with marionette?

还是应该为每个模型创建一个视图?我的意思是单独使用 backbone 我在做某种 "renderSubview" ,使用 marionette 这是毫无意义的,我应该避免这种情况?

将一个 marionette 视图绑定到多个模型不好吗? (并根据多个模型更新更新其模板的不同部分?)

非常感谢

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

但是,如果您的子视图不是很简单,使用 Marionette LayoutView 可能会更好。这样您将受益于封装和 DOM 隔离(因此子视图不会干扰彼此的事件)。

简单的子视图,Backbone-样式

这种方法适用于琐碎的子视图 - 可能具有非常简单的模板和很少的用户交互。您只需要您描述的方法:

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

布局视图

如果子视图更复杂(也许它们允许重要的用户交互),您将受益于为每个模型创建单独的 ItemView。对父视图使用 Marionette LayoutView

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