Gibt es eine Möglichkeit, bedingte „Hinzufügen von“ Ereignissen in Backbone.js zu haben?
-
24-10-2019 - |
Frage
Ich benutze Backbone.js für meine Web-App und es funktioniert bisher halbvertreibend. Das Problem ist, dass ich manchmal Elemente zur Sammlung hinzufügen und sie oben auf der Seite und manchmal nach unten gehen lassen muss. Manchmal muss ich sie animieren, manchmal nicht. Gibt es eine Möglichkeit, dies sauber mit Backbone.js zu machen? Das Übergeben von Argumenten an das "Add" -Event wäre ein guter Weg (z. B. "Vorbereitung: Richtig"), aber dies scheint keine Option zu sein ...
Vielen Dank!
Lösung
Backbone erweitern.Collection und überschreiben Sie die Funktion hinzufügen:
PositionCollection = Backbone.Collection.extend ({
add: function( model, options ){
// do your stuff
// call the real add
Backbone.Collection.prototype.add.call(this, model);
}
});
Wenn Sie sich vorbereiten, möchten Sie möglicherweise nur Backbone.collection.add in ganz kopieren und damit spielen.
Sie können sich auch auf die Sammlungssortierung verlassen. Fügen Sie Ihr Positions- und Animationsattribut zum Modell hinzu, sortieren Sie die Position und hören Sie in der Sammlung Ereignisse zu "hinzu", um es richtig zu animieren.