Durandal: Wie entferne ich mich aus der aktuellen Ansicht in der activate () - Funktion dieser Ansicht?

Ich habe folgendes:

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

Die Warnung wird jedoch getroffen unddann Die Ansicht ändert sich.

Wie kann ich mich vollständig vom aktuellen Element entfernen und verhindern, dass weiterer Code in diesem VM getroffen wird?

Aktualisieren:

Ich habe versucht mitguardroute Ich muss jedoch das viewModel aktivieren, um den Datenservice aufzurufen, der die Daten zurückgibt, die bestimmen, ob ich die Route umleiten soll oder nicht. Die Verwendung von guardroute verhindert vollständig, dass der Datendienst aufgerufen wird (da nichts in der Funktion activate getroffen wird).

Ich habe auch versucht, von der Schule zurückzukehrenif Block, aber dies lädt immer noch die Ansicht / viewAttached / etc, so dass die UX fehlerhaft ist.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage