Подтвердить что ты не робот

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>

?

4b9b3361

Ответ 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>