这个问题与Marionette.js有关
假设我有一个ItemView:ItemView1
,它会生成一个具有<div id="div1itemview">
在CompositeView:CompositeView1
中,我有一个模板,其中<div id="div1CompositeView">
复合视图1也有itemView: ItemView1
我正在定义CompositeView1和ItemView1,最终的html将是:
<div id="div1CompositeView">
Outer div for doing things
<div id="div1ItemView">
Inner div for doing things
</div>
</div>
我的问题是:我们可以在CompositeView1中访问"click #div1ItemView"
事件吗?
换句话说 - 我们是否可以访问(父)CompositeView中的(子)ItemView元素?
(对于CollectionView及其ChildView,是否也适用?)
谢谢!
答案 0 :(得分:1)
更强大的方法是让CompositeView
使用triggers
监听从ItemView
调度的事件:
var MyItemView = Backbone.Marionette.ItemView.extend({
triggers: {
'click': 'do:something'
}
});
var compositeView = Backbone.Marionette.CompositeView.extend({
childView: MyItemView,
onChildviewDoSomething: function () {
console.log('do something');
}
});
childEvents
是另一种类似的选择。
答案 1 :(得分:0)
只需在CompositeView中使用它们(ItemView&#39; s的元素)id,父CompositeView就可以访问ItemView的元素。
推论:可以在父CompositeView!
中触发与ItemView元素相关的事件