非破坏性主干集合过滤

时间:2015-07-18 11:34:52

标签: javascript backbone.js filter backbone-collections

我想基于其中一个或多个模型的属性过滤Backbone集合。我已经解读了这个问题并且我注意到最常讨论的解决方案是简单地使用this.where({"applicationType": application});进行过滤,然后返回一个新的集合或要渲染的模型列表。

原则上我对此没有任何问题但是在尝试实现它时我发现了一个问题。如果我的主干设计模式只是重新渲染视图,当他们的父集合触发一个事件来说某些事情发生变化时,我认为我有两个选择。

1:我获取已过滤对象/新集合的列表并覆盖主集合。

2:我将视图当前正在收听的集合更改为新的过滤列表。

我遇到的问题是我希望这个过程对从服务器收到的主集合是非破坏性的。我一直希望能够清除我的过滤器并重新开始。

我认为我能做到的一种方式如下:

我没有回复该集合的新实例,而是只想添加一个'显示'标记应显示的模型。然后我会一直试图渲染'整个集合,但只显示带有显示标志的模型,因此不会破坏主集合。

这是解决问题的最佳方式还是我错过了一个简单的解决方案?

1 个答案:

答案 0 :(得分:2)

听起来您希望根据条件在集合中显示某些模型,但仍保持集合完好无损。如果它只是一个渲染问题,它是Virtual Collections的完美用例。