Ich habe 3 KomponentenAngular 1.x Komponenten, ui Router 1 Zustandsänderung
- App Component
- Anmeldung Komponente
- Dashboard-Komponente
App Component
Die App-Komponente ist die Hauptkomponente für den Komponentenbaum. Diese Komponente enthält auch das grundlegende Layout, das aus einem Header und einem Wrapper für den Inhalt besteht.
<div class="container-fluid">
<navigation routes="$ctrl.routes"></navigation>
</div>
<ui-view></ui-view>
Anmeldung Component
Die Login-Komponente ist eine Komponente, die das Anmeldeformular macht und tut es Magie.
Armaturenbrett Component
Das Armaturenbrett Komponente rendert Datenbenutzer.
Staaten
{
name: 'app',
url: '',
abstract: true,
component: 'appComponent',
resolve: {
routes:() => Routes
}
},
{
name: 'app.login',
url: '/',
label: 'Login',
data: {
navigations: ['navbar-no-user']
},
component: 'loginComponent',
resolve: {
redirectUrl:() => 'app.dashboard'
}
},
{
name: 'app.dashboard',
url: '/',
label: 'Dashboard',
data: {
navigations: ['navbar']
},
component: 'dashboardComponent'
}
Szenario
Besucher ist die App geladen, ein navbar sollte mit nur navbar-no-Benutzer Produkte wie Login sichtbar sein. Der Besucher meldet sich an und wird zum Benutzer. Nun sollte eine Navigationsleiste mit nur Navigationselementen wie dem Dashboard angezeigt werden.
Frage
ich für dieses Szenario für eine Lösung suchen, in der Regel gab es ein OnStateChange Ereignis und ich konnte dies in einem Controller. Die einzige Option, die ich jetzt sehen kann, ist, die Navigation in jeder Komponente spezifisch darzustellen.
Normalerweise mache ich einen Elternstatus für das Dashboard (alle Zustände nach der Anmeldung). Sie könnten einfach einen abstrakten übergeordneten Status "Dashboard" mit einer Hauptansicht hinzufügen, wie Sie es für den Status "app" getan haben. –
@ daan.desmedt Dies könnte eine Option wahr sein. Kennen Sie andere Strategien, die möglich sind? – Sedenko
Sie könnten eine 'rootscope'-Variable verwenden, um anzugeben, wann der Ansichtsteil angezeigt werden soll ... Aber meine Meinung' state'-Ansichten sind logischer und weniger intensiv für Ihren 'Digest-Zyklus'. –