1

//guard service

import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class AuthGuardService implements CanActivate {

  constructor() {
  }
    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable<boolean> | Promise<boolean> {
    console.log("can activate called");
    return true;
  }


}


//route
const APP_ROUTES = [{
    path: 'login',
    CanActivate: [AuthGuardService],
    component: login
}

so when login page loads it's not invoking can activate method and printing console. I have created a guard service and added CanActivate property in routes.

Jota.Toledo
  • 27,293
  • 11
  • 59
  • 73
kamal soni
  • 61
  • 8

1 Answers1

1

It is because you have an capital C letter in canActivate in your app-routes. Make sure you have registered your AuthGuardService in app.module.ts providers array.

ochs.tobi
  • 3,214
  • 7
  • 31
  • 52