如何让区域听取Marionette布局中触发的事件?

时间:2014-11-03 06:36:39

标签: javascript backbone.js marionette

假设我有一个布局:

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 个答案:

答案 0 :(得分:1)

您目前正在layout触发事件并在collectionView上侦听事件。您应该只在collectionView本身上触发事件:

collectionView.trigger('some:event');

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

如果希望集合视图侦听布局上的事件,则必须将布局传递到集合视图中,或者从布局中调用集合视图上的回调。最好是collectionViewlayout一无所知,layout向下推动所有通信,就像我上面所说的那样。