1

私は非常にトリッキーな状況に直面しています。アプリケーション内のさまざまなコンポーネントにマップされる複数のルートを定義しました。<router-outlet>通常のシナリオでは問題にならない特定のルートに対応するコンポーネントをロードしたい。しかし今回は、<router-outlet>以下のコードのように、カスタムメイドのリスト コンポーネント内で を使用したいと考えています。これにより、複数のインスタンスが作成<router-outlet>され、問題が発生し、コンポーネントがロードされません。

<list*ngFor="let cat of settings">
  <list-item *ngFor="let item of cat.items" 
      [routerLink]="cat.route + item.route" queryParamsHandling="merge">
    <router-outlet></router-outlet>
  </list-item>
</list>

以下のコードは問題なく動作します。ただし、コンポーネントはリストコンポーネントの外にロードされます。これは望ましくありません。

<list*ngFor="let cat of settings">
  <list-item *ngFor="let item of cat.items" 
     [routerLink]="cat.route + item.route" queryParamsHandling="merge">
  </list-item>
</list>
<router-outlet></router-outlet>

以下のコードも問題なく動作します。しかし今回は、ルートに基づいてコンポーネントを動的にロードする機能を失いました。すべて同じコンポーネントがロードされます。

<list*ngFor="let cat of settings">
  <list-item *ngFor="let item of cat.items" 
     [routerLink]="cat.route + item.route" queryParamsHandling="merge">
    <custom-component></custom-component>
  </list-item>
</list>

または、ルートに基づいてコンポーネントを動的に把握し、テンプレートに挿入する方法があります。

4

0 に答える 0