Как определить роутер queryParams Angular 5 - PullRequest
0 голосов
/ 08 мая 2018

У меня проблема с параметрами запроса. Каждый роутер имеет несколько разные параметры запроса.

$ stateProvider позволяет определять queryParams внутри $ state

.state('contacts.list', {
    templateUrl: 'contacts.list.html',
    url: '/test?test1&test2'
    data: {
        customData1: 44,
        customData2: "red"
    } 
  })

Этот код позволяет получить из queryParams только поля test1 и test2.

О новом Angular роутере, если мне нужно посмотреть queryParams, я должен подписаться

this.activatedRoute.queryParams.subscribe(params => {

});

У этого кода есть проблемы, если я наберу в URL какой-нибудь сторонний test3 = lol, я получу этот параметр в параметрах аргумента, и я не хочу фильтровать его во всех местах

Как установить '/ test? Test1 & test2' в Angular 5 router

1 Ответ

0 голосов
/ 08 мая 2018
goProducts() {
  this.router.navigate(['/products'], { queryParams: { order: 'popular', 'price-range': 'not-cheap' } });
}

И URL будет таким.

http://localhost:4200/products?order=popular&price-range=not-cheap

В вашем конструкторе компонентов

this.activatedRoute.queryParams.subscribe(params => {

});

Надеюсь, это поможет. Использовал this , чтобы ответить на ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...