у меня есть проблема. У меня есть фильтр, что поисков и шага эти параметры поисков в другой вид через параметры в маршруте. проблема, которая у него есть в настоящее время, состоит в том, что у фильтра есть 6 параметров, и - возможно, что одинокий пользователь наполняет 4 из 6 полей формуляра, и когда он это посылает, он дает мне ошибку, потому что в маршруте у меня есть определенный 6 параметров этой формы:
{ path: 'inmuebles/:tipo/:transaccion/:pais/:cuartos/:precio_min/:precio_max',component: VistaInmuebleComponent}
и так он такой, как я осуществляю поставку формуляра в кнопке:
(click)="filtro(formulario.value)" [routerLink]="['/inmuebles',formulario.controls['tipo'].value,formulario.controls['transaccion'].value,formulario.controls['pais'].value,formulario.controls['cuartos'].value,formulario.controls['precio_min'].value,formulario.controls['precio_max'].value]"
Существует какой-то способ помещать параметры "precio_min" и "precio_max" как опционально? что, если пользователь не завершает их равно, смогло посылать себе формуляр? в этом моменте он дает мне ошибку, потому что в маршруте я считаю определенными 6 параметров и посылаю 4, если пользователь не выбирает эти 2. Как он мог бы делать, чтобы это решать? спасибо заранее в того, который может помогать мне.
Официальный documentaci¦n углового объясняет, что нужно использовать route parameters
, когда они имеются parÃ: не опциональные метры ( documentaci¦n ), когда он занимается с parÃ: опциональные метры рекомендует использовать query parameters
. Для этого случая в особенности podr¦, - чтобы помогать следующего способа:
{ path: 'inmuebles/:tipo/:transaccion/:pais/:cuartos', component: VistaInmuebleComponent }
соединил в маршрут:
<a (click)="filtro(formulario.value)"
[routerLink]="['/inmuebles', formulario.controls['tipo'].value, formulario.controls['transaccion'].value, formulario.controls['pais'].value, formulario.controls['cuartos'].value]"
[queryParams]="{'precio_min': formulario.controls['precio_min'].value, 'precio_max': formulario.controls['precio_max'].value}">
...
</a>
recepci¦n parÃ: метры:
// ...
import { ActivatedRoute } from '@angular/router';
@Component({ ... })
export class VistaInmuebleComponent implements OnInit {
constructor(private route: ActivatedRoute) { }
ngOnInit() {
this.route.queryParams
.subscribe(params => {
console.log(params); // {"precio_min": <min>, "precio_max": <max>}
});
}
}
Для mÃ: s informaci¦n на query parameters
ты можешь проверять этот ссылка .
tipo
,transaccion
,pais
иcuartos
- pará установленные метры, которых не может не быть, pará опциональные метрыprecio_min
иprecio_max
проходят посредствомquery params
, пример сформированного маршрута serí в/inmuebles/<tipo>/<transaccion>/<pais>/<cuartos>?precio_min=<min>&precio_max=<max>
. Ошибка, о которой ты упоминаешь,, - потому что ты поместил крючок má s в начало[['/inmue...
->['/inmue...
– Jonathan Quispe 10.08.2019, 21:01