Как получить доступ к предыдущему маршруту с роутера Durandal

Есть ли способ получить доступ к предыдущему маршруту/инструкции с маршрутизатора Durandal.js? Я знаю, что могу сделать router.navigateBack(), чтобы фактически вернуться назад, но я хочу знать маршрут, по которому я буду возвращаться, прежде чем запускать навигацию.


person jbgarr    schedule 11.01.2016    source источник


Ответы (1)


Боюсь, не напрямую.

router.navigateBack() определен в router.js как

    router.navigateBack = function() {
        history.navigateBack();
    };

А history.navigateBack() определен в заголовке history.js как

    history.navigateBack = function() {
        history.history.back();
    };

и history.history — это псевдоним, определенный выше для window.history, который является частью браузера и может вызвать проблемы с безопасностью, если его раскрыть.

Если вы хотите иметь эту функциональность, вам придется реализовать ее самостоятельно. Возможно, перехватив router.navigate() и router.navigateBack().

person Maleki    schedule 07.04.2016
comment
Это имеет смысл. Я надеялся, что у маршрутизатора Durandal есть какой-то способ творить там магию, поскольку это одностраничное приложение, но, поскольку на самом деле он просто реализует историю браузера, я вижу, что это невозможно. - person jbgarr; 12.04.2016
comment
Да, я бы тоже хотел. Кстати, если вы считаете, что мой ответ правильный, пожалуйста, отметьте его как правильный. Спасибо. - person Maleki; 19.04.2016