2013-05-24 14 views
8

Mam CompositeView dla tabeli. Mam wyzwalacze określone w dziecku ItemView dla każdego wiersza ...Czy ItemView wyzwala bańki w górę?

var TableRow = Marionette.ItemView.extend({ 
    tagName: "tr", 
    template: _.template($(TableTemplates).filter('#tableRow').html()), 
    triggers: { 
     "click td": "click:td" 
    } 
}); 

Czy wyzwalacze ma bańki do rodzica CompositeView?

Od the docs ...

Mając dostęp do nich [pogląd, właściwości modelu, i zbieranie widoku, który wywołał zdarzenie] pozwala na większą elastyczność w zakresie obsługi zdarzeń z wielu widoków. Na przykład kontrolka zakładki lub widget rozwijania/zwijania, taki jak pasek panelu, może wyzwalać to samo zdarzenie z wielu różnych widoków i być obsługiwane za pomocą pojedynczej funkcji.

Czy "pojedyncza funkcja" nie byłaby w macierzystym CompositeView, aby mógł reagować na wyzwalacze z jego podrzędnych ItemViews? W jaki sposób CompositeView nasłuchuje dla wyzwalacza ItemView?

Dzięki

Odpowiedz

14

Tak, one się bańką.

Jedyną rzeczą, aby mieć na uwadze to, że gdy ItemView jest wywoływana z CompositeView lub CollectionView, że wyzwalacz będzie mieć itemview poprzedzany w nazwie, więc:

click:td będzie słuchać w CompositeView jak itemview:click:td

to ciąg może być zmieniony tak:

var CV = Marionette.CollectionView.extend({ 
    itemViewEventPrefix: "some:prefix" 
}); 

Więc spust byłoby some:prefix:click:td

EDIT: W nowszych wersjach (nie wiem o wersji początkowej), prefiks itemview została zmieniona na childview

Więcej informacji:

Marionette docs

+1

Co jeśli chciał Czy CompositeView sprawia, że ​​wszystkie jego dzieci (ItemViews) słuchają jednego ze swoich zdarzeń? (W przeciwieństwie do tego, że rodzic słucha dzieci) – Johannes

+1

czy możesz pokazać w swojej odpowiedzi, jak mogę słuchać tego wydarzenia? –

+0

@SandipArmalPatil Nie mogłem uzyskać tego działającego z eventów lub itemEvents hashes, więc na końcu wstawiłem następującą funkcję w mojej funkcji initialize: this.listenTo (this, "itemview: whatever", fn); – jackocnr

Powiązane problemy