У меня есть следующее:
function activate(routeData) {
// make dataservice call, evaluate results here. If condition is met, reroute:
if (true){
router.navigateTo("#/someRoute");
}
alert ("should not be shown");
}
Однако оповещение срабатывает, и затем представление меняется.
Как мне полностью уйти от текущего элемента и предотвратить попадание любого другого кода в эту виртуальную машину?
Обновление:
Я пытался использовать guardroute
, но мне нужно активировать viewModel, чтобы вызвать службу данных, которая возвращает данные, определяющие, следует ли мне перенаправить маршрут. Использование guardroute полностью предотвращает вызов службы данных (поскольку ничего в функции активации не будет выполнено).
Я также пытался вернуться из блока if
, но это по-прежнему загружает представление / viewAttached / и т. д., поэтому UX глючит.