在我的项目中,我有一个菜单,它位于* ngFor循环中,我有menu.Id作为从数据库加载数据的参数
<li *ngFor="let item of menu">
<a [routerLink]="['/products', item .Id]">{{item .Name}}</a>
</li>
当我第一次点击这个菜单项(无论哪一个)它工作得很好但是之后点击另一个菜单项它不起作用因为ProductsComponent
已经加载并且不能再次获取Id(路线未被更改'/产品/:id'Id不同但构造函数已经加载并且组件已初始化)。
在ProductsComponent
s的构造函数中获取这样的数据
this.route.params.subscribe(params => {
this.menuId = params.menuId;
});
您可以在加载路线时获取所需的信息
例如,在ngOnInit中,您可以使用以下函数调用getMenuId():
getMenuId() {
const id = +this.route.snapshot.paramMap.get('menuId');
//do something with menuId, like call another function to load your data with the id
}