Aurelia очищает историю маршрутов при переключении на другое приложение с помощью setRoot
Маршрутизатор Aurelia запоминает, на какой странице я был в последний раз, даже после использования setRoot(), и перенаправляет меня на эту страницу, даже если я захочу снова попасть на главную страницу приложения.
Я постараюсь объяснить это в случае использования. У меня есть два приложения: login
а также app
, Я вхожу в login
приложение и перенаправить на app
, Я перехожу к /securedPage
на app
а затем перейдите к выходу из системы и получите перенаправление на login
снова. Я вхожу с другим пользователем на login
и тогда меня перенаправляют на app/securedPage
, Я хочу быть и должен быть перенаправлен просто app
,
Как очистить историю маршрутов при переключении между приложениями с помощью setRoot()?
3 ответа
Хотел помочь, недавно получил эту работу и предложения выше почти работают, но они пропускают некоторые части. В этой теме создатель Аурелии (Айзенберг) отвечает предложением: https://github.com/aurelia/framework/issues/590
Чтобы переключить корень приложения, сделайте следующее:
this.router.navigate('/', { replace: true, trigger: false });
this.router.reset();
this.router.deactivate();
this.aurelia.setRoot('app');
В моем случае я мог бы пропустить сброс и деактивировать часть и просто сделать
this.router.navigate('/', { replace: true, trigger: false });
Однако, выполнение this.router.navigate('/') без части замены и триггера вызвало проблемы, особенно при многократном переключении корня приложения.
Поэтому обязательно добавьте:
... { replace: true, trigger: false });
Ты пробовал
this.router.deactivate();
this.router.reset();
this.app.setRoot('app');
Это не красиво, но это помогло мне:
router.navigate("/");
aurelia.setRoot("login")