Skip to content

on:vm:event and on:el:event

Compare
Choose a tag to compare
@phillipskevin phillipskevin released this 11 Aug 15:18
· 506 commits to master since this release

#271

You can use on:el:event to listen to DOM events (even on elements that have viewModels):

var viewModel = new SimpleMap({
        prop: "Mercury"
});

var MySimpleMap = SimpleMap.extend({
        someMethod: function(){
                // DOM event triggers method call!
        }
});
var parent = new MySimpleMap();

MockComponent.extend({
        tag: "view-model-able",
        viewModel: viewModel
});

var template = stache("<view-model-able on:el:prop='someMethod'/>");

var frag = template(parent);
var element = frag.firstChild;

// trigger a DOM event with the same name as the viewModel event
canEvent.trigger.call(element, "prop");

You can also use on:vm:event to explicitly bind on viewModel events. This is really more for clarity since, viewModel events are the default if the element has a viewModel.