gpt4 book ai didi

javascript - 下划线: Losing reference to collection when filtering

转载 作者:行者123 更新时间:2023-12-03 12:28:06 24 4
gpt4 key购买 nike

我正在使用backbone的fetch()来获取我的集合。由于这需要花费大量时间并且会频繁过滤,因此无需多次 fetch() 。我正在尝试这样做:

if(!App.fetch){
App.fetch = new App.Collection.Artists();
App.fetch.fetch()
}
var c = _.filter(App.fetch.models, function(model){
return model.get('date') == day && model.get('stage') == stage
});
var c = new App.Collection.Artists(c);

我认为我正在做的事情:如果没有缓存的集合,则创建一个并获取它。我将能够使用具有不同“day”和“stage”值的此函数来过滤 App.fetch,它仅填充一次并且不会再次触及。

当我在集合上记录 on.('change') 事件时,我会触发更改事件。我的猜测是过滤器方法触发了更改事件,结果是它只在第一次起作用!

我的问题是为什么这不是我想的那样以及我将如何解决这个问题。

编辑:问题是第二次调用此函数时,我向集合“c”返回 0 个模型。

此致,简

最佳答案

您正在以同步方式处理异步调用。尝试这样的事情,根据需要调整变量范围:

App.fetch({
success: function() {
var c = _.filter(App.fetch.models, function(model){
return model.get('date') == day && model.get('stage') == stage
});
var c = new App.Collection.Artists(c);
}
});

关于javascript - 下划线: Losing reference to collection when filtering,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084647/

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