0

ここでの私の小さな例では、次のパスですべてが正常に機能します。

https://angular-d7eqku.stackblitz.io/path1

https://angular-d7eqku.stackblitz.io/path1?param1=1

しかし、クエリ パラメータを繰り返し使用して値の配列を渡すと、routerLinkActive ブレーキがかかります。

https://angular-d7eqku.stackblitz.io/path1?param1=1¶m1=2

バグですか?どうすればバイパスできますか? Angular 5/6 でテストしました。

更新: パラメーターの配列を正確にこの方法 (複数の値を持つ 1 つのパラメーターとして渡すのではなく) に渡したい理由と、その使用方法を示すために、例を少し更新しました。

Update2: [queryParamsHandling]="'preserve'" を削除した後、機能し始めるので、質問を絞り込むことができます :

4

1 に答える 1

1

クエリ パラメータに配列を渡すには、おそらく使用する,必要があるため、リンクは次のようになります。

https://angular-d7eqku.stackblitz.io/path1?param1=1,2

ルート スナップショット (ActivatedRoute.snapshot) は次のようになります。

{
  ...
  queryParams: {
    param1: "1,2"
  },
  ...
}

アップデート:

わかりました、質問を誤解しました。app.component.html を次のコードに変更すると、動作します。

<ul>
  <li><a routerLink="path1" routerLinkActive="active">Item1</a></li>
  <li><a routerLink="path2" routerLinkActive="active">Item1</a></li>
  <li><a routerLink="path3" routerLinkActive="active">Item1</a></li>
 <router-outlet></router-outlet>
</ul>

ここに再現 ナビゲートがpath1?param1=1&param1=3あり、値が表示され、アクティブなURLが強調表示されます

于 2018-09-20T12:56:50.380 に答える