Durandal: Como se afastar da visão atual dentro da função activate () dessa visão?

Eu tenho o seguinte:

function activate(routeData) {
    // make dataservice call, evaluate results here.  If condition is met, reroute:
    if (true){
       router.navigateTo("#/someRoute");
     }
    alert ("should not be shown");
}

O alerta está sendo atingido, no entanto, eentão a visão muda.

Como faço para navegar completamente longe do item atual e evitar que qualquer código adicional nessa vm seja atingido?

Atualizar:

Eu tentei usarguardroute mas tenho que ativar o viewModel para chamar o dataservice que retorna os dados que determinam se devo ou não reencaminhar. Usar guardroute impede totalmente que o serviço de dados seja chamado (já que nada na função de ativação será atingido).

Eu também tentei voltar doif bloco, mas isso ainda carrega o view / viewAttached / etc assim que o UX é glitchy.

questionAnswers(4)

yourAnswerToTheQuestion