Angular 2 Изменить маршрут (URL) и загрузить данные из БД - PullRequest
0 голосов
/ 04 июня 2018

В моем проекте у меня есть меню, которое находится внутри цикла * ngFor и где у меня есть menu.Id в качестве параметра для загрузки данных из базы данных

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

при первом щелчке по этому пункту меню (нетнезависимо от того, какой из них) работает отлично, но после этого щелкнуть другой пункт меню не работает, потому что ProductsComponent уже загружен и не может снова взять Id (маршрут не изменен) / products /: id 'Идентификатор другой, но конструкторуже загружен и компонент инициализирован).

В конструкторе ProductsComponent s, получающем такие данные

 this.route.params.subscribe(params => {
      this.menuId = params.menuId;
 });
  • Как можно динамически загружать данные в зависимости от маршрута?
  • и можно ли скрыть menu.Id в маршруте?

1 Ответ

0 голосов
/ 05 июня 2018

Вы можете просто получить необходимую информацию из маршрута при загрузке.

Например, в вашем 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
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...