2015-10-14 55 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是另一個類似的選項。