Angular 2更改路由(URL)和从DB加载数据

问题描述 投票:0回答:1

在我的项目中,我有一个菜单,它位于* ngFor循环中,我有menu.Id作为从数据库加载数据的参数

<li *ngFor="let item of menu">
  <a [routerLink]="['/products', item .Id]">{{item .Name}}</a>
</li>

当我第一次点击这个菜单项(无论哪一个)它工作得很好但是之后点击另一个菜单项它不起作用因为ProductsComponent已经加载并且不能再次获取Id(路线未被更改'/产品/:id'Id不同但构造函数已经加载并且组件已初始化)。

ProductsComponents的构造函数中获取这样的数据

 this.route.params.subscribe(params => {
      this.menuId = params.menuId;
 });
  • 如何根据路由动态加载数据?
  • 并且可以隐藏menu.Id在路线?
angular routes angular2-routing
1个回答
1
投票

您可以在加载路线时获取所需的信息

例如,在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
  }
© www.soinside.com 2019 - 2024. All rights reserved.