Как реализовать routerLinkDisabled?

Я ищу для реализации директивы под названием routerLinkDisabled / routerLinkEnabled, похожий на routerLinkActive, но он добавляет классы всякий раз, когда обнаруживает, что навигация по маршруту отключена охранником.

Например:

@Injectable()

export class AuthGuardService implements CanActivate {
  constructor(public auth: AuthService, public router: Router) {}
  canActivate(): boolean {
    if (!this.auth.isAuthenticated()) {
      this.router.navigate(['login']);
      return false;
    }
    return true;
  }
}

Маршрут:

  { 
    path: 'profile',
    component: ProfileComponent,
    canActivate: [AuthGuard] 
  },

Шаблон:

  <a routeLink="/profile" routerLinkDisabled="hidden">Profiles</a>

Скрыл бы ссылку на /profile от пользователей, которые не вошли в систему.

У меня проблемы с сопоставлением URL-адресов с Route (config), чтобы соответствующие гвардейцы могли быть идентифицированы и запущены. Или есть возможность проверить текущее состояние приложения could перейти на этот маршрут без необходимости делать это?

Конечно, я мог бы сделать это вручную, но я не хотел бы делать это без необходимости.

0 ответов