Evite bagunçar seu controlador / view / viewModel / etc com DOM-business pedindo ao RivetsJS para prevenir o default para você.
Basta adicionar isso à configuração dos rebites:
rivets.binders['with-default-on-*'] = rivets.binders['on-*']
rivets.binders['on-*'] = {
"function": true,
routine: function(el, value) {
rivets.binders['with-default-on-*'].routine.call(this, el, function(e) {
e.preventDefault();
value.call(this, e);
});
}
}
Isso agora irá prevenir silenciosamente o padrão, permitindo que sua lógica de visualização seja desabilitada pelo DOM:
<button data-on-click="myHandler"></button>
E no caso de você desejar funcionalidade nativa além do retorno de chamada:
<button data-with-default-on-click=myHandler"></button>