ルートとクエリパラメータが混在するAngular 2のルートに移動しようとしています。
ルートがパスの最後の部分であるルートの例を次に示します。
{ path: ':foo/:bar/:baz/page', component: AComponent }
次のような配列を使用してリンクしようとしています:
this.router.navigate(['foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams)
私はエラーを受け取っておらず、理解できることからこれが機能するはずです。
Angular 2ドキュメント(現時点)には、例として次のものがあります。
{ path: 'hero/:id', component: HeroDetailComponent }
['/hero', hero.id] // { 15 }
私が間違っているところを誰でも見ることができますか?私はルーター3にいます。
最初のセグメントが/
で始まらない場合、それは相対ルートです。 router.navigate
には、相対ナビゲーション用のrelativeTo
パラメーターが必要です
ルートを絶対にするか:
this.router.navigate(['/foo-content', 'bar-contents', 'baz-content', 'page'], this.params.queryParams)
または、relativeTo
を渡します
this.router.navigate(['../foo-content', 'bar-contents', 'baz-content', 'page'], {queryParams: this.params.queryParams, relativeTo: this.currentActivatedRoute})
こちらもご覧ください
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'];
});
}
参照: https://angular.io/docs/ts/latest/api/router/index/NavigationExtras-interface.html