Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度2.导航_Javascript_Angular_Angular2 Routing - Fatal编程技术网

Javascript 角度2.导航

Javascript 角度2.导航,javascript,angular,angular2-routing,Javascript,Angular,Angular2 Routing,我尝试在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: ':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上。

如果第一段不是以
/
开头,则是相对路由<代码>路由器。导航需要一个
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})
另见

从'@angular/router'导入{ActivatedRoute};
导出类类名{
专用路由器=激活的路由;
构造函数(r:ActivatedRoute){
这个路由器=r;
}
onSuccess(){
this.router.navigate(['/user\u invitation'],
{queryParams:{电子邮件:loginEmail,代码:userCode}});
}
}
获取以下值:
---------------
恩戈尼尼特(){
这条路线
.queryParams
.订阅(参数=>{
设code=params['code'];
让userEmail=params['email'];
});
}
尽可能简单

从'@angular/Router'导入{Router}

构造函数(专用路由器:路由器){}

在这里,您将重定向到路由输入。 如果您希望转到某个路径的相对路径,那么

return(){this.router.navigate(['/relative','input']);}
这里on return()是一个方法,单击按钮就会触发它


Home

知道这个帖子很老了,但有几个简单的问题需要我理解:1。在上面的第二种情况下,它不应该是this.router.navigate(**['foo**-content'、'bar contents'、…(在第一段的开头没有/,因为它是相对的)2.除此之外。currentActivatedRoute relativeTo的其他可能值是什么?如果您希望它是相对的,那么省略前面的
/
,我不是有意的。任何您希望路径是相对的路线。谢谢-但是在您的答复中,您提到如果第一段以/开头,那么它就是绝对导航.那么为什么需要相对人呢?现在我明白你的意思了。
relativeTo
只有相对路线才有意义。谢谢你指出这一点。
return(){this.router.navigate(['/relative','input']);}