Backbone.js collection

Backbone.js collection

本文关键字:collection js Backbone      更新时间:2023-09-26

我是一个初学者。js

为什么要使用COLLECTION?

你就不能有一个与每个模型相关联的视图吗?

同样,绑定到模型集合的事件是否适用于所有模型?

当你在操作大型数据集时,有一种机制来对整个数据集或子集执行操作是非常必要的。在Backbone.js中,Collection类提供了这种机制。集合的一些非常常见的用法可以概括如下:

  • 假设您正在从数据库中获取查询结果。现在,您可以创建与记录结构相对应的模型,定义集合,创建集合实例,定义url(如果需要,还可以自定义ajax请求),然后调用fetch。这比拥有一个模型数组更有利:首先,它比遍历解析过的json数据结构并从每个记录对象创建一个模型更方便。其次,整个集合可以立即更新到服务器。正如Mario指出的那样,它使得处理相关记录非常方便。

  • 其次,Collection类为您提供了一个基类,您可以轻松地辅助您的函数来提供自定义过滤和排序功能。

  • 你可以有视图eg。数据网格、树等来表示集合。这样既方便编写代码,也方便从表示集合的视图角度进行思考。

当您有嵌套模型时使用它们,参见http://documentcloud.github.com/backbone/#FAQ-nested

我想你可以有一个视图与每个模型相关联,但不一定。最后一部分不确定,也许运行一个快速测试。

您可以使用集合表示一对多关系。当您的后端数据存储是文档数据库(具有嵌入式文档)时,这种类型的事情是完美的。

您还可以使用集合来允许在模型上进行迭代。

由于模型只能属于单个集合,因此有时将集合视为数据库中的表几乎是有意义的。在数据库中,我有一个人员表。在我的javascript我有一个人的集合。

(模型只能属于单个集合的原因是,在将模型添加到集合中时,集合直接在模型上存储对自身的引用。将模型添加到第二个集合将覆盖模型对第一个集合的引用。