Angular 2 routerLink参数和查询参数

Bah*_*yun 1 typescript angular2-routing angular angular4-router angular5

这是我的路线:

{ path: 'market/:currency', component: MainlayoutComponent, canActivate: [AuthGuard]}
Run Code Online (Sandbox Code Playgroud)

我想重定向到这样的查询参数:

市场/ btc?sidebar = home

<a [routerLink]="['/market', currency]" [queryParams]="{sidebar: 'home'}"></a>
Run Code Online (Sandbox Code Playgroud)

但是当我单击其重定向市场/ BTC

有什么问题。

编辑中

这段代码有效,我还有另一个错误,但我解决了。

Fat*_*zli 6

你可以试试:

<a [routerLink]="'/market/'+ currency" [queryParams]="{sidebar: 'home'}"></a>
Run Code Online (Sandbox Code Playgroud)

或者:

<a routerLink = "/market/{{currency}}" [queryParams]="{sidebar: 'home'}"></a>
Run Code Online (Sandbox Code Playgroud)


Cru*_*ine 5

您只需要保留您的queryParams:

queryParamsHandling="preserve"

将以上属性/指令添加到您的路线:

<a [routerLink]="['/market', currency]" [queryParams]="{sidebar: 'home'}" queryParamsHandling="preserve"></a>
Run Code Online (Sandbox Code Playgroud)


San*_*nde 5

您的代码没有问题。我尝试跟随并且它工作得很好。

我什至添加了一个额外的参数。

<a [routerLink]="['/market', currency]" [queryParams]="{sidebar:'home',tab:'5'}">Go to market</a>
Run Code Online (Sandbox Code Playgroud)

TS :

const routes: Routes = [
    { path: "market/:currency", component: AppComponent}
];
Run Code Online (Sandbox Code Playgroud)

我得到以下结果:

http://localhost:49152/market/currency?sidebar=home&tab=5