Est-il possible d'avoir des événements « add » conditionnels à Backbone.js?
-
24-10-2019 - |
Question
J'utilise Backbone.js pour mon application web et il fonctionne semi-bien jusqu'à présent. Le problème est que je dois parfois ajouter des éléments à la collection et les faire passer en haut de la page, et d'autres fois au fond. Parfois, je les ai besoin Animer, parfois pas. Est-il possible de le faire proprement avec Backbone.js? Le passage des arguments à l'événement « ajouter » serait une bonne façon (par exemple « précédez: true »), mais cela ne semble pas être une option ...
Merci!
La solution
Étendre Backbone.Collection et passer outre la fonction d'ajout:
PositionCollection = Backbone.Collection.extend ({
add: function( model, options ){
// do your stuff
// call the real add
Backbone.Collection.prototype.add.call(this, model);
}
});
La seule chose à garder à l'esprit est que si vous préfixer, append vous pouvez copier Backbone.Collection.add tout à fait et jouer avec.
Vous pouvez également compter sur le tri de collecte. Ajouter votre position et attribut d'animation au modèle, en quelque sorte sur la position et écouter « ajouter » les événements de la collection pour l'animer correctement.