Deviid
Deviid

Reputation: 1

CanActivateFn get hit but same appcomponent get hit too. standalone. angular

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

Answers (0)

Related Questions