Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Marionette itemViewEvents; event dispatching and binding

Tags:

marionette

I'm having some trouble understanding how event dispatching and binding to events between children parents work in the awesomeness that is Marionette.

Is it correct that I can trigger a custom event from an itemView like this:

var Item = Marionette.ItemView.extend({
    events: {
      "click .foo": "do:something"
    }
});

var itemCollection = Marionette.CollectionView.extend({
    itemView: item,
    initialize: function () {
        this.on("itemview:do:something", this.onSomething, this);
    }
}};

Is there some shortcut to binding to the itemView events like I would DOM events:

 var itemCollection = Marionette.CollectionView.extend({
    itemView: item,
    itemviewevents: {
        "itemview:do:something": "onSomething"
    }
}};

Thanks :).

like image 991
winthers Avatar asked Nov 18 '13 11:11

winthers


1 Answers

You're confusing triggers and events. Your code should be

var Item = Marionette.ItemView.extend({
    triggers: {
      "click .foo": "do:something"
    }
});

Use the events hash to have a function called when an event takes place, use the triggers hash to have a trigger executed.

like image 175
David Sulc Avatar answered Jan 01 '23 15:01

David Sulc