Javascript 无损主干收集过滤

Javascript 无损主干收集过滤,javascript,backbone.js,filter,backbone.js-collections,Javascript,Backbone.js,Filter,Backbone.js Collections,我想根据主干集合的一个或多个模型属性筛选主干集合。我仔细阅读了这个问题,发现讨论最多的解决方案是简单地使用this.where({“applicationType”:application})进行筛选,然后返回要渲染的新集合或模型列表 原则上我对此没有问题,但在尝试实现它之后,我注意到了一个问题。如果我遵循的是主干设计模式,即当其父集合触发事件表示某些内容已更改时,仅重新呈现视图,那么我认为有两种选择 1:我获取筛选对象/新集合的列表并覆盖主集合 2:我将视图当前正在侦听的集合更改为新的筛选列表

我想根据主干集合的一个或多个模型属性筛选主干集合。我仔细阅读了这个问题,发现讨论最多的解决方案是简单地使用
this.where({“applicationType”:application})
进行筛选,然后返回要渲染的新集合或模型列表

原则上我对此没有问题,但在尝试实现它之后,我注意到了一个问题。如果我遵循的是主干设计模式,即当其父集合触发事件表示某些内容已更改时,仅重新呈现视图,那么我认为有两种选择

1:我获取筛选对象/新集合的列表并覆盖主集合

2:我将视图当前正在侦听的集合更改为新的筛选列表

我的问题是,我希望这个过程对从服务器接收到的主集合是非破坏性的。我总是希望能够清理掉我的过滤器,然后重新开始

我认为我能做到这一点的方法如下:

我不想返回集合的新实例,而是想简单地为应该显示的模型添加一个“display”标志。然后,我将始终尝试“渲染”整个集合,但仅显示带有显示标志的模型,因此不会破坏主集合


这是解决问题的最佳方法,还是我缺少了一个简单的解决方案?

听起来您希望根据条件在集合中显示某些模型,但仍然保持集合的完整性。如果这只是一个渲染问题,那么这是一个完美的使用案例。

我尽量避免使用插件。我正在寻找一个纯粹的“主干”解决方案。谢谢你的回答。啊,我明白了。虚拟收藏只有200行代码:)你也许可以从源代码中获得一些灵感。@Thole,这就是我一直在寻找的东西。谢谢