Sempre evite o padrão com RivetsJS

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>