Durandal: Jak odejść od bieżącego widoku w funkcji aktywowania () tego widoku?

Mam następujące:

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

Alert jest jednak trafiony inastępnie widok się zmienia.

Jak w pełni odejść od bieżącego elementu i zapobiec trafieniu jakiegokolwiek kolejnego kodu w tym vm?

Aktualizacja:

Próbowałem użyćguardroute ale muszę aktywować viewModel, aby wywołać usługę dataservice, która zwraca dane, które określają, czy powinienem ponownie wyznaczyć trasę. Korzystanie z Guardroute całkowicie uniemożliwia wywołanie usługi dataservice (ponieważ nic w funkcji aktywacji nie zostanie trafione).

Próbowałem też wrócić zif blok, ale to wciąż ładuje widok / viewAttached / etc, więc UX jest uciążliwy.

questionAnswers(4)

yourAnswerToTheQuestion