基于多个模型属性过滤 Backbone.js 集合

ecbunoof  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(151)

我有一个小问题,如何最好地过滤一个 Backbone.js 集合的模型属性。我的设置如下:
我有一个集合,其中有几个模型。每个模型都有一个属性,其中包含一个数字数组(“type”)。如下所示:

- Collection
- model
    - id: 1
    - name
    - phone
    - type [3]
- model
    - id: 2
    - name
    - phone
    - type [2]
- model
    - id: 3
    - name
    - phone
    - type [1,2]

我在这里要做的是能够根据模型的“type”属性过滤这些集合。
我有这个“类型”属性,因为这是联系人列表,每个联系人可以有几种类型。例如,集合应该能够在无限的类型上进行筛选。您应该能够在类型“1”和类型“2”上进行筛选,然后将显示模型2和模型3。原因是模型1没有“类型”1。
任何好的代码示例或其他帮助都将是很好的。谢谢!

u3r8eeie

u3r8eeie1#

您可以使用以下代码

var filColl=myColl.filter(function(o){return _.indexOf(o.get('type'), 1) >-1 })

下面是jsFiddle链接的工作代码,以及一些示例数据。

bejyjqdl

bejyjqdl2#

嗨,这是可以过滤多种类型的代码,存储在数组中

var typesTofilter=[5,1,2];//array of type tobe search.
    var f2=friends.filter(function(o){ var accept=false;                                    
                                       $(typesTofilter).each(function(i,val){
                                         if(_.indexOf(o.get('type'), val) >-1){
                                           accept= true;                      
                                            }
                                        })
                                        return accept; 
                         });

这里是jsFiddle

相关问题