angular - 如何调用路由器导航方法而不是routerLink?
问题描述
我正在尝试用路由器的导航方法替换 routerLink 。不幸的是,它不起作用,我无法再解释它。routerLink 可以正常工作。
我想替换这个:
<mat-list-item role="listitem" [routerLink]="['details', 2]" routerLinkActive="active">
有了这个:
<mat-list-item role="listitem" routerLinkActive="active" (click)="openDetails(2)">
这就是我使用导航方法的方式:
openDetails(id) {
this.router.navigate(['details', id]);
}
我的路由器配置如下所示:
const routes: Routes = [
{
path: '',
component: MasterComponent,
children: [
{
path: 'details/:id',
component: DetailsComponent
}
]
}
];
我究竟做错了什么?
解决方案
您需要将导航附加对象传递给导航方法,并将 relativeTo 字段设置为当前路由,如下所示:
constructor(private route:ActivatedRoute,private router:Router) { }
this.router.navigate(['details', id], {relativeTo:this.route});
推荐阅读
- curl - 如何卷曲 sparql 语法查询
- node.js - 在多个 IP 上运行多个 socket.io-client
- php - 在php中将一个数组转换为另一个数组
- c - 如何在二叉搜索树中插入新节点?
- javascript - 从 Fetch 中获取 Json 数据
- python - 将年和周的整数更改为日期时间
- powerbi - 针对 API 请求在 Power Query 中对 distinctList 进行简单 for 循环
- azure - 有没有办法在 Azure 应用服务中记录 http 请求的正文?
- android - 深层链接不适用于 Instragram 故事向上滑动
- python - 安装 NLTK 时出错