Angular 2: загрузка разных компонентов по одному и тому же маршруту с условиями?

Есть ли способ загрузить другой компонент по одному и тому же маршруту (в моем случае корневой маршрут).

В основном я хочу увидеть, вошел ли пользователь в систему, если он вошел в систему, будет загружен компонент панели инструментов, если он не вошел в систему, будет загружен домашний компонент

И еще раз, чтобы прояснить вопрос, я не хочу перенаправлять пользователя на ДРУГОЙ маршрут, используя защиту авторизации. Я хочу загружать разные компоненты по одному и тому же маршруту


person Manzur Khan    schedule 30.11.2017    source источник
comment
Есть охранники, с которыми можно работать. Проверьте эту ссылку blog.thoughtram.io/angular /2016/07/18/guards-in-angular-2.html. Это дает хорошее понимание охранников.   -  person Vinod Bhavnani    schedule 30.11.2017
comment
Я использовал охранников, и, насколько я знаю, охранники, как следует из названия, могут только охранять маршрут, разрешать доступ или нет, в случае, если доступ не должен быть разрешен, мы можем перенаправить пользователя на другой маршрут. Но я не хочу, чтобы в этом случае пользователь перенаправлялся на другой маршрут, но сам корневой маршрут должен загружать другой компонент в зависимости от моего состояния.   -  person Manzur Khan    schedule 30.11.2017


Ответы (1)


Если вы не хотите использовать охранников, и это то, что вы упомянули в своем вопросе, вы можете просто использовать ngIf.

Пример:

<div *ngIf="this.authService.hasPermissionForDashboard()">
 <app-dashboard><app-dashboard>
</div>
<div *ngIf="this.authService.hasNotPermissionForDashboard()">
 <app-home><app-home>
</div>
person G.Vitelli    schedule 30.11.2017
comment
Я тоже думал об этом, но подумал, что должен быть какой-то лучший способ. Предполагая, что нет другого стандартного способа. Я могу уйти с этим. Спасибо - person Manzur Khan; 30.11.2017