Итак, у меня есть layoutView, можно назвать его MyLayoutView. В этом макете я два childViews:Как childView правильно прослушивает другие события childView с помощью marionettejs?
return Marionette.LayoutView.extend({
template: templates.pages.layoutTpl,
regions: {
regionTest1: "#test1-view",
regionTest2: "#test2-view"
},
childEvents: {
'my:event': function (childView, param) {
console.log(param); //its ok
}})
и в childView (CompositeView), я вызвать событие, например:
this.triggerMethod('my:event', [1,2,3]);
работает отлично. Как я могу прослушивать это событие из другого дочернего элемента?
До сих пор я это сделать в LayoutView:
'my:event': function (childView, params) {
this.getRegion('regionTest2').currentView.trigger('my:event2');
},
и regionTest2 Я слушаю события:
//in the secord childView
this.on('my:event2', function() {//do whatever...})
поймать событие в другой childView. ОК, это работает, но я думаю, что письмо немного уродливое .. любые предложения к нему лучше?
Привет, Akshad, спасибо за ваш ответ, я скоро попробую Backbone.Radio плагин. – d00d