Есть ли способ провести условные события «добавить» в Backbone.js?
-
24-10-2019 - |
Вопрос
Я использую Backbone.js для моего веб-приложения, и оно до сих пор работает в полупроводке. Проблема в том, что иногда мне нужно добавлять элементы в коллекцию и заставить их перейти в верхнюю часть страницы, а в других случаях внизу. Иногда мне нужно, чтобы они анимировали, иногда нет. Есть ли способ сделать это чисто с Backbone.js? Передача аргументов к событию «Добавить» было бы хорошим способом (например, «ПРИМЕНОВАТЬ: TRUE»), но это не является вариантом ...
Спасибо!
Решение
Расширить Backbone.collection и переопределить функцию добавления:
PositionCollection = Backbone.Collection.extend ({
add: function( model, options ){
// do your stuff
// call the real add
Backbone.Collection.prototype.add.call(this, model);
}
});
Единственное, что нужно иметь в виду, это то, что если вы будете готовить, добавьте, вы можете скопировать Backbone.collection.add Add Add и поиграть с ним.
Вы также можете полагаться на сортировку коллекции. Добавьте свой атрибут своей позиции и анимации в модель, сортируйте по позиции и прослушайте события «добавить» в коллекции, чтобы правильно ее анимировать.