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`, }) export class App { access = inject(DemoAccess); }