Reputation: 1
My environment as ng 17.1.13, node 19.9.0, npm 9.6.3. Standalone application.
My app.routes.ts
import { Routes } from '@angular/router';
import { AppComponent } from './app.component';
import { authGuard } from './guard/auth.guard';
export const routes: Routes = [
{
path: '',
component: AppComponent,
pathMatch : 'full',
canActivate: [authGuard],
},]
auth.guard.ts
import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
import { TokenService } from '../services/token.service';
export const authGuard: CanActivateFn = (route, state) => {
const tokenService: TokenService = inject(TokenService);
const router: Router = inject(Router);
return false;//breakpoint hit
// return tokenService.isAuthenticated();
};
app.config.ts
import { ApplicationConfig } from '@angular/core';
import { provideRouter } from '@angular/router';
import { provideHttpClient} from '@angular/common/http';
import { routes } from './app.routes';
export const appConfig: ApplicationConfig = {
providers: [provideRouter(routes), provideHttpClient()]
};
app.component.ts(code snippet)
import { Component, ViewEncapsulation, OnInit, EventEmitter, Inject,
} from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterOutlet } from '@angular/router';
import { FormControl, FormGroup, Validators, ReactiveFormsModule, ValidationErrors } from '@angular/forms';
@Component({
selector: 'app-root',
standalone: true,
imports: [CommonModule, RouterOutlet, ReactiveFormsModule],
templateUrl: './app.component.html',
styleUrl: './app.component.css',
encapsulation: ViewEncapsulation.None
})
export class AppComponent implements OnInit{
async ngOnInit() {
this.buildForm();
}
buildForm(){
this.surveyForm = new FormGroup({//breakpoint hit
});
}
As authguard returns false, I'd expect appcomponent no chance to run? but they run anyway.
Upvotes: 0
Views: 99