Я использую скелет Aurelia для своего проекта. Все казалось настолько интуитивным, однако я застрял в проблеме, которую, как я подозреваю, довольно легко (если вы знаете, как это сделать).Как переключаться между страницей входа и приложением с Aurelia
Проблема в том, что app.html/app.js изначально показывает панель навигации и загружает некоторые стили по умолчанию.
Теперь мне нужна страница входа в систему, которая не загружает ничего, кроме своих собственных стилей, никаких навигаторов нет ничего - только его собственная форма входа.
Так что я пытался что-то вроде этого:
app.js
<template>
<div if.bind="auth.isNotAuthenticated()">
<require from="components/login/index" ></require>
<login router.bind="router"></login>
</div>
<div if.bind="auth.isAuthenticated()">
<require from="nav-bar.html" ></require>
<require from="../styles/styles.css"></require>
<div class="container" id="banner">
<div class="row">
<img src="images/logo.png" />
</div>
</div>
<nav-bar router.bind="router"></nav-bar>
<div class="page-host">
<router-view></router-view>
</div>
</div>
</template>
Очевидно, что не работает (если вы обновите страницу/f5), так как app.js/приложение .html - это корневой маршрут, который всегда присутствует и никогда не изменяется. Но я надеюсь, что логика в разметке поможет проиллюстрировать то, что я ищу для решения?
Я предполагаю, что если бы я знал, как перезагрузить родительский маршрут (app.js), когда я перехожу от логина, к успеху входа в систему, к другому маршруту. И снова, когда я выхожу из системы, родительский маршрут (app.js) должен быть снова обновлен. Тогда все мои проблемы будут решены.
Что мне здесь не хватает? :-)
Спасибо большое за удивительный ответ! setRoot действительно был способ отправиться! – Dac0d3r
@ jeremy-danyow, когда я вызываю 'setRoot' после аутентификации, aurelia загружает модуль js и соответствующий HTML, но ничего не отображает на странице. Если в этот момент я нажму обновление, все будет нормально. Есть ли недостающая часть в приведенном выше коде? – Suhas
Чувак ..... Я не могу поверить, что я никогда не думал об этом. Это гениально, и теперь я сталкиваюсь с любыми глупыми хаками, которые я сделал, чтобы сделать эту работу эквивалентным образом. –