何时渲染模型以及何时渲染集合 - Backbone.js

时间:2016-02-26 01:27:47

标签: javascript jquery backbone.js underscore.js

我仍然在学习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

非常感谢有人能告诉我何时使用以及他们的优点/缺点是什么。

提前谢谢。

1 个答案:

答案 0 :(得分:2)

您不渲染模型或集合,而是渲染视图。视图通常包含一个模型或一个集合,或者通常包含两者的混合。所以真正的问题是视图应该与模型还是集合相关联?答案应该是自然而然的。

假设您有一个涉及库的应用程序。您有一个book模型,一个books集合,因此您最终会得到book视图和books视图。 books视图应在语义上更具名称,例如bookshelf视图。在呈现bookshelf视图时,您将遍历其books集合并将每个book模型分配给新的book视图,然后呈现视图。 bookshelf视图将填充book次视图。

我看到的一个常见模式是单个视图,它充当子视图的容器。容器视图与集合相关联,而子视图与模型相关联。呈现容器视图,这将导致呈现集合中的每个模型。