Angular2 Routerlink: добавьте параметры запроса
Как добавить параметры запроса в routerLink
?
@RouteConfig {
{path: '/search', name: 'Search', component: SearchCmp}
}
Скажем, я хочу перейти на /search?q=asdf
,
<a [routerLink]= " [ '/Search' , {q= 'asdf'}] ">Link 1</a>
это разрешает /search
.
Есть ли способ добавить параметры запроса без использования:
this.router.navigate( ['Search', { q: 'asdf'}]);
или
<a href="/search?a=asdf"> Link 2 </a>
?
Ответы
Ответ 1
Если вам нужно что-то как /search?q=asdf
, чем вы можете просто использовать:
@RouteConfig {
{path: '/search', name: 'Search', component: SearchCmp}
}
//And to generate router Links use:
<a [routerLink]="['/Search']" [queryParams]="{q:'asdf'}"></a>
Это приведет к созданию тега href как <a href="/search"
, но при нажатии на тег привязки вы укажете URL /search?q=asdf
. [queryParams] позволит вам добавить параметры запроса в "?", иначе они будут добавлены ";". Вы можете получить этот параметр в своем SearchCmp
, используя:
constructor(private _routeParams: RouteParams) {
var queryParam = this._routeParams.get('q');
}
Ответ 2
OP (Original Poster) спросил, как добавить параметры запроса через ссылку маршрутизатора, а не параметры маршрутизатора, как ответил @SaUrAbH MaUrYa.
Чтобы добавить параметры запроса, вам нужно использовать привязку [queryParams]
:
<a [routerLink]="['/users']" [queryParams]="{ page: 1 }">next page</a>