J'essaie de naviguer vers une route dans Angular 2 avec un mélange de paramètres de route et de requête.
Voici un exemple d'itinéraire où l'itinéraire représente la dernière partie du chemin:
{ path: ':foo/:bar/:baz/page', component: AComponent }
Tenter de lier en utilisant le tableau comme suit:
this.router.navigate(['foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams)
Je ne reçois aucune erreur et d'après ce que je peux comprendre, cela devrait fonctionner.
Les documents Angular 2 (pour le moment) ont les exemples suivants:
{ path: 'hero/:id', component: HeroDetailComponent }
['/hero', hero.id] // { 15 }
Quelqu'un peut-il voir où je vais mal? Je suis sur le routeur 3.
Si le premier segment ne commence pas par /
, il s'agit d'un itinéraire relatif. router.navigate
nécessite un paramètre relativeTo
pour la navigation relative
Soit vous faites la route absolue:
this.router.navigate(['/foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams)
ou tu passes relativeTo
this.router.navigate(['../foo-content', 'bar-contents', 'baz-content', 'page'], {queryParams: this.params.queryParams, relativeTo: this.currentActivatedRoute})
Voir également
import { ActivatedRoute } from '@angular/router';
export class ClassName {
private router = ActivatedRoute;
constructor(r: ActivatedRoute) {
this.router =r;
}
onSuccess() {
this.router.navigate(['/user_invitation'],
{queryParams: {email: loginEmail, code: userCode}});
}
}
Get this values:
---------------
ngOnInit() {
this.route
.queryParams
.subscribe(params => {
let code = params['code'];
let userEmail = params['email'];
});
}
Réf.: https://angular.io/docs/ts/latest/api/router/index/NavigationExtras-interface.html