2014-03-13 51 views
0

我有以下的集合:Backbone.js的过滤器收集的名字

[ { name: "sally" }, { name: "john" } , { name: "harry" } ] 

我想即使该名称包含内部通过名称进行筛选。

例如:

如果我被过滤的'我想它赶上{名:“萨利”}

回答

0

骨干使用Underscorejs,所以从下划线滤镜上骨干收藏。

如果您的收藏是骨干收藏。

var People = Backbone.Collection.extend({ 
    // ... 

    filterByName: function(str){ 
     return this.filter(function(item) { 
      return item.get("name").indexOf(str) > -1; 
     }); 
    } 
}); 

然后就可以调用myCollection.filterByName("s")得到你想要的东西:

var publishedBooks = books.filter(function(item) { 
     return item.name.indexOf('something') !== -1; 
    }); 
+0

我不需要完全匹配,我需要如果我正在搜索它包含在里面。 – Alon

+0

查看更新的答案 – bingjie2680

+0

谢谢,作为冠军 – Alon

0

您的收藏调用filter在简单地定义一个函数。