angular - Angular:使用具有相对路由的导航方法路由到子组件不起作用
问题描述
此 stackblitz中给出了使用的示例
这就是路由的结构
RouterModule.forRoot([
{
path: 'login',
component: LoginViewComponent,
children: [
{ path: 'home', component: HomeViewComponent },
{ path: 'catalog/:id', component: CatalogViewComponent }
]
},
{ path: '**', redirectTo: 'login' }
])
],
当我在登录组件中时,我可以使用此绝对路由转到主组件
this.navigate(['login/home']);
我也可以navigateByUrl()
这样使用
this.navigateByUrl(['login/home']);
但我不明白如何相对于navigate()
this.navigate(['home'], { relativeTo: this.route });
this.navigate(['/home'], { relativeTo: this.route });
这些方法都没有路由到 homeComponent
解决方案
我没有创建子路由,而是在路径中有另一条同名的路由:
应用程序路由.module.ts
{ path: "activity", component: ActivityComponent },
{ path: "activity/orders", component: OrdersComponent },
如果我在activity
组件中,我会通过以下方式导航到订单:
this.router.navigate(["orders"], { relativeTo: this.route });`
活动组件中的导入和构造函数
import { Router, ActivatedRoute } from "@angular/router";
constructor(
private router: Router,
private route: ActivatedRoute,
) {
推荐阅读
- common-lisp - Common Lisp 中在加载/编译时将选项传递给库的常见做法
- powershell - PS获取文件属性-路径中的特殊字符
- python - 如何将时间放在 x 轴上而不是索引值和关于刻度的问题
- json - 各种类型的相同protobuf消息字段名称
- oop - 子域是一个类吗?(域驱动设计)
- reactjs - 如何使用修改后的值更新当前选择的待办事项?
- c++ - Boost Beast,如何提供登录凭据
- javascript - 如何识别使用 javascript 在表格上单击了哪个单元格?
- python - Django 注释 sum 子查询
- python - 恢复whatsapp备份后修复Whatsapp Exif错误的创建日期