У меня есть маршрут, определенный следующим образом:
{
path: 'manageagreements', component: ManageagreementsComponent,
children: [
{ path: 'editagreement/:agreement', component: EditagreementComponent },
]
}
И я пытаюсь получить соглашение о параметре, что у меня отлично получается со следующим кодом:
ngOnInit(): void {
this.activatedRoute.params.subscribe(parameter => {
this.agreement = parameter.agreement;
})
alert(this.agreement)
}
В manageagreements.component у меня есть две кнопки для передачи параметров tos и pp.
Это отлично работает, когда я вызываю компонент из его родителя в первый раз следующим образом:
http://localhost:4200/platform/manageagreements/editagreement/tos
Но когда он уже отрендерен, и я вызываю его из родительского компонента с другим параметром, он просто не работает:
http://localhost:4200/platform/manageagreements/editagreement/pp
Я не знаю, что я делаю неправильно, я буду признателен за вашу помощь.
Спасибо.
Если кто-то ищет решение этой проблемы, вы можете изменить routeReuseStrategy непосредственно на уровне компонента с помощью:
this.router.routeReuseStrategy.shouldReuseRoute = () => false;
Таким образом, код заканчивается так (для примера выше):
public agreement: string;
constructor(
private activatedRoute: ActivatedRoute,
private router: Router,
) {
this.router.routeReuseStrategy.shouldReuseRoute = () => false;
this.activatedRoute.params.subscribe((params: Params) => {
this.agreement = params.agreement;
});
alert(this.agreement)
}
Спасибо.