Ich arbeite an einem Beispiel Angular 2-Anwendung, die auch Routing-Funktion hat, und unten ist meine Routing-Code.Wie Identität Seite nicht gefunden Route in Root-Komponente [Angular 2]?
....
...
RouterModule.forRoot([
{ path: '', component: LoginComponent },
{ path: "spa/home", canActivate: [canActivateGuard], component: HomeComponent },
{ path: 'spa/about', canActivate: [canActivateGuard], component: AboutComponent },
{ path: 'spa/login', component: LoginComponent },
{ path: '**', component: PageNotFoundComponent}
])
....
....
In meiner Stammkomponente, basierend auf dem aktuellen Route, braucht es den Wert „blnDisplayMenu“ zu wahr oder falsch zu setzen. Der folgende Code in der Root-Komponente setzt "blnDisplayMenu" auf "false", wenn die aktuelle Route "/ spa/login" lautet.
ngOnInit() {
this.router.events.subscribe(e => {
if (e instanceof NavigationEnd) {
if (e.url == '/' || e.url == '/spa/login') {
this.blnDisplayMenu = false;
}
else {
this.blnDisplayMenu = true;
}
}
});
}
Meine Frage ist, wie man "blnDisplayMenu" auf falsch setzt, auch wenn die aktuelle Route "**" ist.
aber, wie für andere Routen auf "wahr" zu setzen? – refactor
habe es, in sonst – refactor
eine Lösung ist, "NavigationEnd" für andere Routen und 'ActivatedRoute' für' ** 'Route zu verwenden, aber ich bin nicht sicher, ob seine Ausführungssequenz die Ausgabe beeinflussen wird oder nicht [kann' blnDisplayMenu' überschrieben werden value] und 2. solution ist es, 'displaymenu' auf allen anderen Routen auf' true' zu setzen und in 'ActivatedRoute' sonst '' blnDisplayMenu' auf 'true' zu stellen. – ranakrunal9