Содержимое, присутствующее в ngSwitchDefault, не обновляется каждый раз, когда я меняю условие переменной переключателя - PullRequest
1 голос
/ 20 апреля 2020

У меня есть макет страницы, как показано ниже. Макет отвечает за загрузку всех маршрутов в моем проекте. Когда мы используем view1, это будет загружать условие по умолчанию. Таким же образом view2, view3 загружает свое собственное состояние.

 <ng-container [ngSwitch]="routeData?.layout">
<ng-container *ngSwitchCase="'view2'"> Some HTml and <router-outlet></router-outlet></ng-container>
<ng-container *ngSwitchCase="'view3'"> Some HTml and <router-outlet></router-outlet></ng-container>
<ng-container *ngSwitchDefault>Some HTml and <router-outlet></router-outlet></ng-container>

Когда я был на странице, которая использует view1 (макет по умолчанию), и я пытаюсь перейти на другую страницу, которая также используя view1. URL браузера изменился, но Router-outlet не загружает новую страницу. Я понял, что, когда случай коммутатора выполняет тот же случай, который не обнаруживает никаких изменений.

Не могли бы вы, ребята, предложить какой-либо правильный способ обновления данных случая коммутатора или любой хороший подход для решения этой проблемы.

1 Ответ

0 голосов
/ 22 апреля 2020

Вышеупомянутая проблема, которую я решил, используя следующий подход.

<ng-template #temp>
<router-outlet></router-outlet>
</ng-template>
<ng-container [ngSwitch]="routeData?.layout">
<ng-container *ngSwitchCase="'view2'"> Some HTml and <ng-container *templateOutlet="temp"></ng-container></ng-container>
<ng-container *ngSwitchCase="'view3'"> Some HTml and <ng-container *templateOutlet="temp"></ng-container></ng-container>
<ng-container *ngSwitchDefault>Some HTml and <ng-container *templateOutlet="temp"></ng-container></ng-container>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...