【发布时间】:2011-11-21 16:05:40
【问题描述】:
在this stackoverflow post 中,我阅读了有关过滤主干集合和使用子集的信息。
一个答案(通过雪橇)建议使用backbone.subset.js (usage example)。
我在backbone.subset.js 上找不到任何其他资源,并且未能将其实施到我的项目中。
似乎 backbone.subset.js 是我想要实现的完美解决方案。
(拥有一个始终保存所有模型的“父”集合,并根据用户输入将父集合中的相关模型过滤到一个主干子集集合中。)
我的“父”集合,包含所有任务:
var TasksAll = Backbone.Collection.extend({
url: '/tasks', // the REST url to retrieve collection data
model: Task // the models of which the collection consists of
});
var allTasks = new TasksAll();
现在我想创建一个子集集合,例如task.status = 0 的任务:
var TasksTrash = new Backbone.Subset({
superset: allTasks,
filter: function(Task) {
return Task.isTrash();
}
});
var trashTasks = new TasksTrash();
而在 Task 模型中,“isTrash”方法在以下情况下返回 true:
this.get('status') == 0
a)backbone.subset.js 上还有更多资源吗?
b) 如何实现上述场景?
c) 我可以将“superset”和“filter”选项作为参数传递给 Backbone.Subset init 函数吗?
d) 我查看了主干.subset.js 代码,当我“重置”我的父集合时,我的子集集合应该立即更新,对吧?
PS:我对 Backbone 还很陌生。感谢您的帮助。
【问题讨论】:
-
github.com/masylum/Backbone.Subset 这个版本看起来比你的馅饼版本维护得更好。 (我也是骨干新手,所以无法回答您的其他问题)