是否可以使用 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 有点过时,但提供了很好的整体介绍。
还是应该为每个模型创建一个视图?我的意思是单独使用 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 有点过时,但提供了很好的整体介绍。