Навигация по одному и тому же маршруту с разными параметрами - PullRequest
0 голосов
/ 11 июня 2019

Я перемещаюсь в файле машинописи с

this.router.navigateByUrl(`account-transactions/${code}`);

однако мой активный маршрут -

http://localhost:4200/account-transactions/10102

но если попытаться перейти, скажем:

http://localhost:4200/account-transactions/99999

адрес URL меняется, но компонент не перезагружается

Кто-нибудь знает почему?

Ответы [ 3 ]

2 голосов
/ 11 июня 2019

Я думаю, что вы используете снимок для получения своего значения, поэтому для работы вам нужно активированный пользовательский маршрут, чтобы вы могли подписаться на обнаружение изменений в маршрутизации. Вы должны изменить свой код инициализации для следующего:

constructor(private route: ActivatedRoute) {}

  ngOnInit() {
   this.route.params.subscribe(params => {
       this.id = params['id']; //or whatever you put in your routing
       // here your logic to use this id

    });
  }
0 голосов
/ 11 июня 2019

Angular не перезагружает компонент при изменении параметров URL. Вместо этого вы можете подписаться на Observables, присутствующие в интерфейсе ActivatedRoute (https://angular.io/api/router/ActivatedRoute) в компоненте, который вы хотите перезагрузить.

В вашем компоненте

import { ActivatedRoute } from '@angular/router';

...

export class ExampleComponent implements OnInit {
    constructor(
        private activeRoute: ActivatedRoute
    ) { }

    ngOnInit() {
        this.activeRoute.params.subscribe(routeParams => {
            // Do something on URL parameter change
            this.loadAccountTransactions(routeParams.code);
        });
    }
}
0 голосов
/ 11 июня 2019

Попробуйте: this.router.navigateByUrl( .. / account-Transactions / $ {код} );

или если вы используете routerLink

routerLink="../account-transactions/' + code" или
[routerLink]="['../account-transactions', code]"

...