gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 02:47:42 25 4
gpt4 key购买 nike

this stackoverflow post我阅读了有关过滤主干集合和使用子集的内容。

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

我在 backbone.subset.js 上找不到任何进一步的资源,而且我未能将其实现到我的项目中。

backbone.subset.js 似乎是我想要实现的目标的完美解决方案。

(拥有一个始终保存所有模型的“父”集合,并根据用户输入将父集合中的相关模型过滤到 backbone.subset 集合中。)

我的“父”集合,包含所有任务:

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 初始化函数吗?

d) 我查看了 backbone.subset.js 代码,当我“重置”我的父集合时,我的子集合应该立即更新,对吗?

PS:我是 Backbone 的新手。感谢您的帮助。

最佳答案

查看 backbone-subset 的源代码,看起来好像有一个预初始化 Hook ,您可以利用它来使“筛子”或过滤器作为选项或参数可用:

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

至于提供 parent 作为参数,有一个出色的补丁来添加确切的功能:

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

有了它,你可以将 parent 作为一个选项传入,如果它不是一个选项,库将回退到在对象 Prototype 上寻找它

关于javascript - 在 Backbone.js 中实现 Backbone.Subset.js 以从父集合中过滤模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com