Проблема с роутером Angular 6 на той же странице - PullRequest
0 голосов
/ 17 октября 2018

У меня есть две ссылки:

  1. ['/productlist',1000]
  2. ['/productlist',1001]

Эти две ссылки находятся на одной странице.Если я нажму на любую ссылку в первый раз.Он перенаправляет на страницу, но если я нажимаю на другую ссылку, он не работает.

component.html code

<a class="dropdown-item" (click)="GetProductList(subitem.SubCategoryID)">
 <i class="mdi mdi-chevron-right" aria-hidden="true"></i> 
 {{ subitem.SubCategoryName}}
</a> 

GetProductList(SubCategoryID){ 
    this.router.navigate(['/productlist',SubCategoryID]); 
}

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Попробуйте следующим образом.

<a [routerLink]="['/productlist']" [queryParams]="{id: 1}"> // Set dynamic
   link
</a>

Другой способ:

<a  [routerLink]="[ '/productlist',1000]">Link</a>

Таким образом, вам не нужновызвать любую функцию. Для получения дополнительной информации пожалуйста, прочтите это.

0 голосов
/ 17 февраля 2019

хорошо, для этого есть много ненужных хаков (даже опасных из-за утечек памяти ...), но правильный (предполагаемый) способ - подписаться на изменение параметров маршрута, тогда связанная форма должна обновиться при перезагрузкеваши данные:

ngOnInit() {
  this.route.paramMap.subscribe(params => {
     this.myParam = params.get("id");
     this.loadData();
  })
}

примечание: здесь используется маршрут ActivatedRoute , импортированный из '@ angular / router';

, но, если вы все еще хотите полное обновление,вы можете установить фиктивный корень / компонент, который перенаправит вас обратно.

0 голосов
/ 17 октября 2018

Поскольку для угловых это тот же маршрут - он не перегружается.

Два возможных решения:

  1. В компоненте подпишитесь на this.route.params и отреагируйте соответственно, как в Angular 4 routerLink - перезагрузка текущего маршрута

  2. в Angular 5 есть возможность перезагрузить активный маршрут:

RouterModule.forRoot (маршруты, {onSameUrlNavigation: 'перезагрузка'}

Попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...