我是Backbone.js的新手。我很想知道您可以只为集合提供URL,然后继续创建,更新,删除和从该集合中获取模型,并处理与API的所有交互。
在我在网上看到的小型任务管理示例应用程序和众多演示中,似乎collection.fetch()
用于从服务器下载所有模型,然后对它们执行某些操作。但是,通常情况下,在实际应用程序中,您不希望通过向API发出GET语句来提取数十万甚至数百万条记录。
使用带烘焙的connection.sync
方法,如何为GET特定记录集指定参数?例如,我可能想要使用日期为2/1/2014的GET记录或由特定用户ID拥有的GET记录。
在this question中,collection.find
用于执行此操作,但这仍然会将所有记录下拉到客户端然后“找到”它们或知道collection.sync
方法指定在对服务器进行GET时的参数?
答案 0 :(得分:2)
您可以在服务器端实现某种分页,并使用有限数量的记录更新您的集合。在这种情况下,您的所有数据都将与后端保持同步。
您可以通过使用自己的实现覆盖fetch方法来执行此操作,或指定params 例如:
collection.fetch({data: {page: 3})
答案 1 :(得分:2)
您确实使用了抓取功能,但提供了collection.fetch([options]
)中的选项。
例如,获取id为myIDvar的一个模型:
collection.fetch(
{
data: { id: myIDvar },
success: function (model, response, options) {
// do a little dance;
}
};
我的随意回忆是find,findWhere和where会调用正在下载的所有模型,然后在客户端上进行过滤。我相信使用fetch过滤会在服务器端进行。
答案 2 :(得分:0)
你也可以使用find where where here
collection.findWhere(attributes)