或者我应该为每个模型创建一个视图?我的意思是单独使用骨干我正在做某种“renderSubview”,使用牵线木偶这是毫无意义的,我只是应该避免这种情况吗?
将木偶视图绑定到多个模型是不是很糟糕? (并根据多个模型更新更新其模板的不同部分?)
很多人
答案 0 :(得分:2)
Marionette并没有给你任何工具来做到这一点,但它是Backbone顶部的薄层;你描述的方法会很好。
但是,如果你的子视图不是很简单,那么最好使用木偶LayoutView
。这样你就可以从封装和DOM隔离中受益(因此子视图不会干扰彼此的事件)。
这种方法适用于琐碎的子视图 - 可能使用非常简单的模板和很少的用户交互。除了您描述的方法之外,您不需要任何其他内容:
您可以将renderSubViewX
方法添加到任何Marionette视图类型(甚至是香草Backbone.View
)。它们看起来像典型的Backbone render
方法 - 调用模板函数或创建一些DOM节点并将它们插入到文档中。使用this.listenTo(this.model1, "change", this.renderSubView1, this)
重新渲染更改。
如果子视图更复杂(可能它们允许非平凡的用户交互),您将从为每个模型创建单独的ItemView
中受益。使用Marionette LayoutView
作为父视图。
Derick Bailey的blog post on Layouts有点过时但提供了很好的整体介绍。