我仍然在学习Backbone.js,我不确定在逐个model
渲染collection
与渲染model
之间的优点和缺点是什么。
我见过他们一次呈现一个//in parent view
var view = new SectionView({model: section});
this.$("#section-list").append(view.render().el);
//in child view, render()
this.$el.html(this.template(this.model.toJSON()));
的例子。例如:
<script type="text/template" id="section-template">
<section class="view" id=section-<%- id %>>
<label><%- height %></label>
<label><%- color %></label>
<label><%- id %></label>
<button class="destroy">Delete</button>
</section>
</script>
使用如下模板:
collection
但是,我也看过他们渲染整个{{1}}的示例,例如post。
非常感谢有人能告诉我何时使用以及他们的优点/缺点是什么。
提前谢谢。
答案 0 :(得分:2)
您不渲染模型或集合,而是渲染视图。视图通常包含一个模型或一个集合,或者通常包含两者的混合。所以真正的问题是视图应该与模型还是集合相关联?答案应该是自然而然的。
假设您有一个涉及库的应用程序。您有一个book
模型,一个books
集合,因此您最终会得到book
视图和books
视图。 books
视图应在语义上更具名称,例如bookshelf
视图。在呈现bookshelf
视图时,您将遍历其books
集合并将每个book
模型分配给新的book
视图,然后呈现视图。 bookshelf
视图将填充book
次视图。
我看到的一个常见模式是单个视图,它充当子视图的容器。容器视图与集合相关联,而子视图与模型相关联。呈现容器视图,这将导致呈现集合中的每个模型。