Как показывать только ссылки на модули, которые я могу активировать в Angular?

Я использую маршрутизатор и защиту с помощью CanActivate. Он отлично работает, но мне нужно показать в моем меню только «активные» ссылки.

Есть ли у маршрутизатора какая-либо опция «isActivable»?

Пример:

<ul>
 <li routerLink="home" routerLinkActive="active" *ngIf="isActivable">Home</li>
<ul>

person MiguelAngel_LV    schedule 06.06.2017    source источник
comment
Посмотрите здесь stackoverflow.com /вопросы/40507064/   -  person Spitzbueb    schedule 06.06.2017
comment
Но это решение добавляет много шаблонов, мне нужно добавить защиту в меню и в модуль маршрутизации...   -  person MiguelAngel_LV    schedule 06.06.2017


Ответы (1)


Вы можете просто внедрить Guard в конструктор вашего Компонента. Как это:

constructor(private yourGuard: YourGuard){}

И в шаблоне:

<ul>
 <li routerLink="home" routerLinkActive="active" *ngIf="yourGuard.canActivate()">Home</li>
<ul>

Конечно, вы должны указать свою защиту в маршрутизаторе...

person Spitzbueb    schedule 06.06.2017