В Backbone я использую новое событие Backbone.listenTo
. В одном из моих экземпляров прослушиватель привязан к трем разным событиям, например:
this.listenTo(this._Collection, 'reset add change', this._setCollection);
Он вызывается соответствующим образом, когда он должен, и там нет проблем. Чего я не знаю, так это как узнать, какое событие было вызвано. У меня есть доступ к аргументу e
, используя:
_setCollection: function(e) {
// Do fun stuff
}
Проблема в том, что аргумент e
отправляет только копию коллекции и не упоминает, какое событие фактически запускается. Я пробовал e.type
и e.target
, но этих объектов не существует. Вот копия объекта e
из инструментов Chrome Dev:
_byCid: Object
_byId: Object
_events: Object
add: Array[1]
change: Array[1]
remove: Array[1]
reset: Array[1]
__proto__: Object
_listenerId: "l16"
length: 3
models: Array[3]
Как я могу узнать, какое событие было запущено?
РЕДАКТИРОВАТЬ: Уточнение ответа: хотя помеченный ответ является технически правильным, как указано mu_is_too_short, правильный ответ использует несколько обработчиков и не выполняет этот тип «уловок»