Ответ 1
Аналогичное решение для того, что предлагалось @Andreas, но без Backbone.Marionette(тем не менее,
У меня есть несколько базовых моделей, организованных в коллекциях и связанных с их соответствующими представлениями и/или коллекциями представлений. Некоторые из этих моделей, которые не принадлежат к одной коллекции, должны инициировать событие, которое представляет интерес для другой модели (и, возможно, более одного).
Рекомендуемый способ справиться с этим - это, я думаю, "глобальный диспетчер событий/агрегатор событий", как описано здесь и в других местах.
Однако я также использую require.js, который, похоже, противоречит идее присоединения диспетчера/агрегатора к объекту пространства имен приложения - или я здесь не прав?
Итак, мой вопрос: using require.js, как я могу использовать несколько разных моделей базовых процессоров, чтобы инициировать событие, которое будет обрабатываться другой моделью?
Аналогичное решение для того, что предлагалось @Andreas, но без Backbone.Marionette(тем не менее,
Мы используем Marionettes app.vent
(который является глобальным передатчиком событий для нашего приложения), а также требует js и работает очень хорошо.
Приложение
define(, function(){
return new Backbone.Marionette.Application();
})
Model1
define(['app'], function(app){
return Backbone.Marionette.Model.extend({
initialize: function(){
this.bindTo('app.vent', 'create:model2', this.toSomething, this);
}
})
})
Model2
define(['app'], function(app){
return Backbone.Marionette.Model.extend({
initialize: function(){
app.vent.trigger('create:model2', this);
}
})
})