Comment obtenir paramètre sur Angular2 route Angulaire de la sorte?
Route
const appRoutes: Routes = [
{ path: '', redirectTo: '/companies/unionbank', pathMatch: 'full'},
{ path: 'companies/:bank', component: BanksComponent },
{ path: '**', redirectTo: '/companies/unionbank' }
]
Composant
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' },
]
},
...
]
Exemple de lien: http://localhost:8099/#/companies/bdo
Je veux obtenir String
bdo dans l'exemple du lien ci-dessus.
Je suis conscient que je peux avoir le lien par l'aide de la fenêtre.emplacement.href et divisé en tableau. Donc, je peux obtenir le dernier param, mais je veux savoir si il y a une bonne méthode sur la façon de procéder dans angulaire façon.
Toute aide serait appréciée. Grâce
Vous devez vous connecter pour publier un commentaire.
Si vous injectez de l'
ActivatedRoute
dans votre composant, vous serez capable d'extraire les paramètres de l'itinéraireSi vous prévoyez d'utilisateurs de naviguer à partir d'une banque à l'autre directement, sans passer à un autre composant d'abord, vous devez accéder à ce paramètre par le biais d'un observables:
Pour les docs, y compris les différences entre les deux consultez ce lien et de la recherche pour "activatedroute"
Mise À Jour: Août 2017
Depuis Angulaire 4,
params
ont été dépréciée en faveur de la nouvelle interfaceparamMap
. Le code pour le problème ci-dessus devrait fonctionner si vous simplement se substituer l'un à l'autre.paramMap
, vous devriez être en utilisantparams.get('bank')
à la place.Comme Angulaire 6+, c'est traité un peu différemment que dans les versions précédentes. Comme @BeetleJuice mentionne dans le la réponse ci-dessus,
paramMap
est nouvelle interface pour obtenir paramètre de route, mais l'exécution est un peu différent dans les versions plus récentes de Anguleux. En supposant que c'est dans un composant:Je préfère utiliser à la fois parce qu'alors, sur directe du chargement de la page, je peux obtenir l'ID de paramètre, et aussi si la navigation entre les entités liées à l'abonnement de mise à jour correctement.
Source Angulaire Docs
switchMap
être nécessaire ici? Ne pas s'abonner me demande directe du chargement de la page ainsi?map
de l'opérateur. Mais leHeroService
retourne unObservable<Hero>
. Afin de vous aplatir les Observables avec lesswitchMap
opérateur à la place. LeswitchMap
opérateur annule le précédent en vol demandes. Si l'utilisateur ré-accède à cette route avec un nouveauid
tandis que leHeroService
est encore de la récupération de l'ancienid
,switchMap
les rejets, la vieille requête et retourne le héros de la nouvelleid
."