2016-04-09 8 views
1

Ich habe eine Backbone.Pageable-Sammlung, auf der ich versuche, einen Filter zu machen und die Sammlung mit den gefilterten Werten zurückzusetzen, aber nach dem Zurücksetzen hat collection.fullCollection ein Modell weniger als das Original.Backbone.PageableCollection fullCollection wirkt nach dem Zurücksetzen seltsam

Dies ist meine Sammlung:

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")); 
    }); 
    } 
}); 

Sie auf dieser Geige here überprüfen.

+0

Das Rückgrat Sammlung scheint wie erwartet zu funktionieren. Es ist das Plug-in 'fullCollection', das nicht aktualisiert wird. Fordern sie diese Funktion zu unterstützen? Wenn ja, dann ist das ein Problem mit dem Paginator Plugin ..? Haben Sie versucht, ein Problem in GitHub aufzuwerfen? –

+0

Ich bin mir nicht sicher, ob sie solch ein Feature beanspruchen, aber ich habe gesehen, dass es auf diese besondere Weise verwendet wird und gut funktioniert. Ich werde versuchen, es noch einmal zu versuchen, bevor ich ein Problem in GitHub anstecke. – shahsank3t

Antwort

0

Ihre Suchfunktion sollte eine Instanz von todoCollection zurückgeben.

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

Mein Problem besteht nicht darin, Modelle/Instanzen von todoCollection zurückzugeben, sondern das Zurücksetzen von todoCollection, das mein erstes Modell von todoCollection.fullCollection schneidet, was nicht gemacht werden sollte. (fullCollection ist ein Teil von paginator plugin) – shahsank3t

+0

Kann ich mir den aktualisierten Fiddle Link in meinem Beitrag ansehen? Es schneidet nicht mehr das erste Modell. Obwohl ich nicht weiß, warum es das überhaupt gemacht hat. – Abhinav

+0

Ich schaute auf die aktualisierte Geige und es zeigt korrekte Länge, aber das gefilterte Modell in der neu zurückgesetzten Sammlung ist nicht die richtige. Sie können console.log die Reset-Sammlung und überprüfen Sie das Modell, um zu sehen, was ich versuche zu sagen. – shahsank3t

Verwandte Themen