2014-11-03 2 views
0

Скажем, у меня есть макет:Как регионы слушают событие, вызванное макетом в марионетке?

layout = Marionette.LayoutView

Внутри у меня есть область с целью сбора.

collectionView = Marionette.CollectionView 
layout.collectionRegion.show(collectionView) 

Если я вызвать событие на layout, как я могу иметь вид коллекции слушать? например.

collectionView.on("get:to:collection:view") 
layout.trigger("get:to:collection:view") 
// IN THIS CASE THE COLLECTION VIEW WILL NOT RECEIVE THE EVENT 

ответ

1

Вы в настоящее время запуска события на layout и прослушивание событий на collectionView. Вы должны просто вызвать событие на самом CollectionView:

collectionView.trigger('some:event'); 

// In the collection view 
this.listenTo(this, 'some:event', callback); 

Если вы хотите представление коллекции для прослушивания событий на макете вы должны либо передать макет в поле зрения сбора, или вызов функции обратного вызова по сбору вид из макета. Лучше, если collectionView ничего не знает о layout, а layout толкает все сообщения вниз, как я уже показал выше.

Смежные вопросы