В Angular для передачи нескольких параметров в маршруте, корректным подходом является использование параметров запроса (query parameters
).
Допустим, у вас есть маршрут, который должен получить несколько параметров. Этот маршрут может выглядеть примерно так: /product/:id
. Здесь :id
- это динамический сегмент URL.
Мы можем передать больше информации в этот маршрут с помощью параметров запроса, таких как /product/:id?color=red&size=medium
.
В Angular, чтобы передать параметры запроса в маршрут, вы можете использовать метод navigate
Router сервиса:
this.router.navigate(['/product', productId], { queryParams: { color: 'red', size: 'medium' } });
В этом примере, productId
- это значение, которое вы хотите передать в качестве параметра :id
. А { queryParams: { color: 'red', size: 'medium' } }
- это объект, который содержит все параметры запроса, которые вы хотите передать.
Уже в компоненте, который ассоциирован с маршрутом, вы можете использовать ActivatedRoute сервис для получения этих параметров:
this.activatedRoute.queryParams.subscribe(params => {
console.log(params); // Вернет { color: 'red', size: 'medium' }
});
Таким образом, Angular предоставляет гибкую и мощную систему маршрутизации, которая позволяет не только передавать параметры через URL, но и управлять ими динамически, используя простые и потокобезопасные способы. Это особенно полезно при создании сложных одностраничных приложений, где много взаимосвязей между различными экранами и состояний пользовательского интерфейса.