Роутер-розетка неожиданно активировалась в неправильном месте - PullRequest
0 голосов
/ 24 февраля 2019

У меня есть дочерний элемент управления, который я хочу активировать в элементе управления mat-tab-group (я не хочу использовать mat-nav, потому что мне нужны анимации, предоставляемые mat-tab-group - и просто проще позволить элементу управления вкладкиобработать создание компонента.

Однако мой дочерний маршрут активируется в нескольких местах.

<mat-tab-group>

    <mat-tab label="Animals">

        <ng-component *ngIf="showCats">
            Cats
        </ng-component>

        <ng-component *ngIf="!showCats">
            Dogs
        </ng-component>

    </mat-tab>

    <mat-tab label="FAQ">
        <router-outlet></router-outlet>
    </mat-tab>

</mat-tab-group>

1 Ответ

0 голосов
/ 24 февраля 2019

Это может произойти, если вы поставите ng-component вместо ng-container

Очень легко сделать ошибку - но маршрутизатор будет рассматривать ng-component как некоторый особый тип потомка и автоматически создаст router-outletвнутри него.

Решение простое - используйте ng-container

 <ng-container *ngIf="showCats">CATS</ng-container>
...