2015-10-14 57 views
0

ItemView控件元素这个问题涉及到Marionette.js

可以说我有一个ItemView控件:ItemView1这使得有
<div id="div1itemview">访问木偶的内部CompositeView中

在CompositeView中的模板:CompositeView1,我有一个模板,有一个
<div id="div1CompositeView">
CompositeView1也有itemView: ItemView1

我以这样的方式,最终的HTML将确定CompositeView1和ItemView1:

<div id="div1CompositeView"> 

    Outer div for doing things 

    <div id="div1ItemView"> 

     Inner div for doing things 

    </div> 

</div> 

我的问题是:我们可以在CompositeView1中访问"click #div1ItemView"事件吗?

换句话说 - 我们是否可以访问(父级)CompositeView中的(子级)ItemView元素?

(同样适用于CollectionView及其子视图吗?)

谢谢!

回答

0

ItemView的元素可以通过在CompositeView中使用它们的(ItemView元素)id来由父CompositeView访问。

推论:有关ItemView元素的事件可以在父CompositeView中触发!

1

更健壮的方法是有CompositeView监听使用triggersItemView调度的事件:

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是另一个类似的选项。