Route
const appRoutes: Routes = [
{ path: '', redirectTo: '/companies/unionbank', pathMatch: 'full'},
{ path: 'companies/:bank', component: BanksComponent },
{ path: '**', redirectTo: '/companies/unionbank' }
]
Komponente
const NAVBAR = [
{
name: 'Banks',
submenu: [
{ routelink: '/companies/unionbank', name: 'Union Bank' },
{ routelink: '/companies/metrobank', name: 'Metro Bank' },
{ routelink: '/companies/bdo', name: 'BDO' },
{ routelink: '/companies/chinabank', name: 'China Bank' },
]
},
...
]
Beispiel für einen Link: http://localhost:8099/#/companies/bdo
Ich möchte String
bdo im obigen Beispiellink erhalten.
Mir ist bewusst, dass ich den Link mithilfe von window.location.href abrufen und in ein Array aufteilen kann. Ich kann also den letzten Parameter abrufen, möchte aber wissen, ob es eine geeignete Methode gibt, um dies auf eckige Weise zu tun.
Jede Hilfe wäre dankbar. Vielen Dank
quelle
paramMap
sollten Sieparams.get('bank')
stattdessen verwenden.this.route.snapshot.paramMap.get('bank');
undthis.route.snapshot.params.bank;
?Ab Angular 6+ wird dies etwas anders gehandhabt als in früheren Versionen. Wie @BeetleJuice in der obigen Antwort erwähnt ,
paramMap
handelt es sich um eine neue Schnittstelle zum Abrufen von Routenparametern, die Ausführung ist jedoch in neueren Versionen von Angular etwas anders. Angenommen, dies ist in einer Komponente enthalten:Ich bevorzuge es, beide zu verwenden, da ich dann beim direkten Laden der Seite den ID-Parameter erhalten kann und auch beim Navigieren zwischen verwandten Entitäten das Abonnement ordnungsgemäß aktualisiert wird.
Quelle in Angular Docs
quelle
switchMap
hier erforderlich? Wird das Abonnement nicht auch beim direkten Laden der Seite aufgerufen?map
Operator zu verwenden. Aber dasHeroService
gibt ein zurückObservable<Hero>
. Sie reduzieren also das ObservableswitchMap
stattdessen mit dem Operator. DerswitchMap
Operator bricht auch frühere Anfragen während des Flugs ab. Wenn der Benutzer erneut zu navigiert Diese Route mit einer neuen,id
während dieHeroService
alte noch abgerufen wirdid
,switchMap
verwirft diese alte Anfrage und gibt den Helden für die neue zurückid
. "