import { Component } from '@angular/core'; import { Injectable, inject, signal } from '@angular/core'; import { CanActivateFn, Router, RouterLink, RouterOutlet, Routes } from '@angular/router'; @Injectable({ providedIn: 'root' }) class DemoAccess { allowed = signal(false); } const guard: CanActivateFn = () => inject(DemoAccess).allowed() || inject(Router).createUrlTree(['/denied']); @Component({ selector: 'bh-route-guards-part-0', standalone: true, template: '
Catalog
', }) class CatalogPage {} @Component({ selector: 'bh-route-guards-part-1', standalone: true, template: 'Local access refused
', }) class DeniedPage {} @Component({ selector: 'bh-route-guards-part-2', standalone: true, template: 'Demo loans allowed
', }) class LoansPage {} export const routes: Routes = [ { path: '', component: CatalogPage }, { path: 'loans', canActivate: [guard], component: LoansPage }, { path: 'denied', component: DeniedPage }, ]; @Component({ selector: 'bh-route-guards', standalone: true, imports: [RouterLink, RouterOutlet], template: `Loans