2016-04-09 32 views
1

Üzerinde bir filtre oluşturmaya çalıştığım Backbone.Pageable koleksiyonum var, ancak koleksiyon filtrelenmiş değerler ile sıfırladıktan sonra reset.fullCollection koleksiyonundan daha az bir modele sahip. orijinal.Backbone.PageableCollection'ın fullCollection sıfırladıktan sonra garip davranıyor

var todoCollection = Backbone.PageableCollection.extend({ 
    mode:'client', 
    search: function(letters){ 
    var self = this; 
    if(letters === "") return this.fullCollection.models; 

    var pattern = new RegExp(letters,"i"); 
    return this.fullCollection.filter(function(data) { 
     return pattern.test(data.get("text")); 
    }); 
    } 
}); 

Bu keman here de kontrol edebilirsiniz:

Bu

benim koleksiyon.

+0

omurga toplama beklendiği gibi çalışıyor görünüyor. Güncellenmeyen "fullCollection" eklentisi. Böyle bir özelliği desteklediklerini iddia ediyorlar mı? Eğer öyleyse bu bir paginator eklentisi ile ilgili bir sorun ..? Github'da bir sorunu büyütmeyi denediniz mi ..? –

+0

Böyle bir özellik iddia edip etmediklerinden emin değilim, ancak bu özel kullanımda ve iyi çalıştığını gördüm. Github'da bir sorunu çözmeden önce bir kez daha denemeyi deneyeceğim. – shahsank3t

cevap

0

Arama işleviniz bir todoCollection örneğini döndürmelidir.

var todoCollection = Backbone.PageableCollection.extend({ 

mode:'client', 
    search: function(letters){ 
    var self = this; 
    if(letters === "") return this.fullCollection.models; 

    var pattern = new RegExp(letters,"i"); 
    result = this.fullCollection.filter(function(data) { 
     return pattern.test(data.get("text")); 
    }); 
    return new todoCollection(result); 
    } 

Working fiddle

+0

Sorunum, todoCollection modellerinin/örneklerinin geri döndürülmesiyle değil, ilk modelimi todoCollection.fullCollection öğesinden dilediği todoCollection öğesinin sıfırlanmasıdır. (fullCollection, paginator eklentisinin bir parçasıdır) – shahsank3t

+0

Gönderideki güncelleştirilmiş bağlantı bağlantısına bir göz atabilir miyim? Artık ilk modeli dilimlemek değil. Her ne kadar neden ilk etapta bunu yaptığımı bilmiyorum. – Abhinav

+0

Güncellenen keman'a baktım ve doğru uzunluğu gösteriyor ancak yeni sıfırlanan koleksiyondaki filtrelenmiş model doğru değil. Sıfırlama koleksiyonunu konsol.log yapabilir ve söylemeye çalıştığım şeyi görmek için modelini kontrol edebilirsiniz. – shahsank3t