2017-02-09 35 views
0

我已經在該區域內定義了LayoutView &。對於一個區域,我附加了CompositeView。在CompositeView中的部分我加入UI塊像marionettejs - 獲取哪個元素事件生成

ui: { 
     checkbox: '#DivGrp1 input[type=checkbox]' 
    } 

    triggers: { 
     'change @ui.checkbox': 'chk:clicked' 
    }, 

在父類&觸發塊,我聽的事件像

childEvents: { 
    'chk:clicked':function(e){ 
    // e is referring to view & not checkbox 
    } 
} 

我想訪問哪個事件是提高投入要素。這裏的複選框已被選中或未選中。

這些複選框是動態的。

感謝 Aniruddha

+0

正如文檔[LayoutView childEvents](http://marionettejs.com/docs/v2.4.4/marionette.layoutview.html#layoutview-childevents)中所述:_請注意,childEvents處理程序的第一個參數是子視圖本身。你需要傳遞一個消息(或者在你的情況下是一個複選框ID)來接收它作爲父視圖處理程序的第二個參數。 – Ritesh

回答

1

簡短的回答:訪問DOM中擁有該元素的視圖。然後使用它的trigger方法手動觸發事件傳遞父視圖所需的操作結果。

我不是木偶專家,但總的來說,從其他視圖直接訪問某個視圖的元素並不是一個好主意。

如果要訪問事件對象,請使用events屬性執行需要在子視圖本身中訪問DOM的操作。執行操作,然後使用trigger()方法觸發事件父視圖正在偵聽。

這是一個:example from the official docs它有一個相似的結構。

如果您必須直接訪問該元素,則可以在trigger()方法中將它的引用作爲參數傳遞。但是這不被推薦。

相關問題