JavaScript – 在Backbone.js中实现Backbone.Subset.js以从父集合中过滤模型

前端之家收集整理的这篇文章主要介绍了JavaScript – 在Backbone.js中实现Backbone.Subset.js以从父集合中过滤模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
this stackoverflow post我读过关于过滤骨干集合和使用子集.

一个答案(由雪橇)建议使用backbone.subset.js(usage example).

我在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();

而在任务模型中,方法“isTrash”返回true如果:

this.get('status') == 0

a)backbone.subset.js有更多的资源吗?

b)如何实现上述方案?

c)可以将“超集”和“过滤”选项作为参数传递给Backbone.Subset init函数吗?

d)我查看了骨干.subset.js代码,当我重置’我的父集合我的子集集应该立即更新,对吧?

PS:我对Backbone来说相当新鲜谢谢你的帮助.

解决方法

查看骨干子集的来源,它看起来好像有一个预初始化的钩子,您可以使用它来使“筛选”或过滤器可用作选项或参数:

https://github.com/masylum/Backbone.Subset/blob/master/backbone.subset.js#L50

对于提供父级作为参数,有一个未完善的补丁来添加这个确切的功能

https://github.com/masylum/Backbone.Subset/pull/5

使用它,您可以作为选项传递给父项,如果它不是一个选项,库将会回退到对象上查找原型

猜你在找的JavaScript相关文章