Ho alcuni elementi che desidero su ogni pagina tranne la pagina di accesso. Mi piacerebbe usare ngIf o possibilmente la proprietà nascosta degli elementi per nascondere quegli elementi quando l'utente è nella pagina di login.Nascondi elementi basati sul routing in Angular2 rc1
Ho provato questo:
<div [hidden]="router.isRouteActive(router.generate('/login'))">
basa su questa domanda e risposta: In Angular 2 how do you determine the active route?
e hanno anche provato questo:
<div *ngIf="!router.isRouteActive(router.generate('/login'))">
ma non hanno avuto alcun successo.
Per riferimento qui è il componente che corrisponde a questo html.
import { Component, OnInit } from 'node_modules/@angular/core';
import { HTTP_PROVIDERS, XHRBackend } from 'node_modules/@angular/http';
import { Routes, Router, ROUTER_DIRECTIVES } from 'node_modules/@angular/router';
import { LoginService } from './login/login.service';
import { LoginComponent } from './login/login.component';
import { UserComponent } from './user/user.component';
@Component({
selector: 'portal',
templateUrl: 'portal/portal.component.html',
directives: [ROUTER_DIRECTIVES, LoginComponent, UserComponent ],
providers: [
HTTP_PROVIDERS,
LoginService
]
})
@Routes([
{ path: '/login', component: LoginComponent},
{ path: '/user/:username', component: UserComponent}
])
export class PortalComponent implements OnInit{
private router: Router
constructor() {}
ngOnInit() {
this.router.navigate(['/login']);
}
}
La documentazione di isRouteActive è piuttosto ridotta, lo stesso per la generazione. Qualche direzione su un modo migliore per ottenere questo comportamento?
Sì! Finalmente, ho trovato la risposta che stavo cercando. Grazie. –
'contains' non è javascript nativo. Per le persone che cercano di cercare una stringa nell'url vedi la mia risposta: http://stackoverflow.com/a/41684866/4194436 – Michelangelo