2014-12-19 98 views
0

嗨,我使用Backbonejs,我有一個例子集合骨幹收集方法返回子

var MyCollection=Backbone.Collection.extend({ 
    init:function(options){xxx}, 
    getPageNumber:function(){this.length/100}, 
    myfilter:function(){}, 
}); 

的問題是我想補充這myfilter功能,即過濾掉的收集和返還相同種類「myCollection」,這樣我就可以調用getPageNumber()。像這樣:

collection.myfilter(cb).getPageNumber(); 

backbone中的默認過濾函數返回一個簡單的數組,而不是Backbone.Collection對象。 underscorejs.filter也是如此(它的本質與Backbone.collection.filter相同)。我想知道是否有一個簡單的方法來做到這一點。

感謝

+1

你能簡單地合併過濾器進入getPageNumber方法你原來的集合 - getPageNumber:函數(){返回this.myFilter()長度/ 100。 ; } –

+0

這是一條路,但我只是想知道是否有一個更優雅的解決方案,我的其他功能。我甚至想過初始化一個集合,然後添加進去。 – Evilsanta

回答

1

您可以刷新使用reset

myfilter:function(){ 
     var result = yourFilterLogicHere... 

     this.reset(result); 
     return this; 
    } 
+0

非常感謝!這幾乎是我現在想要的,除非我不想用過濾器替換集合,我想創建集合的淺表副本。我最終只是調用構造函數 – Evilsanta