Из бэкэнда я получаю следующий URL
http://localhost:4200/paypal/?paymentId=PAYID-L7LA6CT5K826252R&token=EC-1R8557872G&PayerID=8ANSA9QW
Моя цель - перенаправить на домашний компонент при появлении этой ссылки.
На данный момент я пытаюсь сделать это с помощью модуля угловой маршрутизации следующим образом:
const routes: Routes = [
{ path: 'home', component: HomeComponent},
{ path: 'PayPal/:paymentId&:token&:PayerID', component: HomeComponent}
];
Как мне структурировать маршрут для перенаправления на компонент?
нет необходимости добавлять эти параметры запроса в путь маршрута. вам просто нужно иметь paypal
. И в навигации просто перемещайтесь по параметрам запроса, как это
Маршруты
const routes: Routes = [
{ path: 'home', component: HomeComponent},
{ path: 'paypal', component: HomeComponent}
];
Навигация
import { ActivatedRoute, Router } from '@angular/router';
export class AppComponent {
constructor(
private router: Router,
private activeRoute: ActivatedRoute
) {
this.router.navigate(['paypal'], { queryParams: {
paymentId: 'PAYID-L7LA6CT5K826252R',
token: 'EC-1R8557872G',
PayerID: '8ANSA9QW'
}});
}
}
Кроме того, вы можете получить эти параметры запроса из активированного маршрута, как это
import { ActivatedRoute, Router } from '@angular/router';
export class AppComponent {
constructor(
private router: Router,
private activeRoute: ActivatedRoute
) {
// get the params only one time
console.info(activeRoute.snapshot.queryParams, 'paypal query params');
// or you can subscribe the query param changes
activeRoute.queryParams.subscribe(params => {
console.info(params, 'paypal query params from the subscription');
})
}
}