CanActivate路线保护不会被调用

时间:2018-02-22 07:17:37

标签: angular angular-router angular-router-guards

//守卫服务

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
}

所以当登录页面加载时,它不会调用可以激活方法和打印控制台。我创建了一个警卫服务,并在路线中添加了CanActivate属性。

1 个答案:

答案 0 :(得分:1)

这是因为您在app-routes中的canActivate中有一个大写的C字母。 确保您已在app.module.ts providers数组中注册了AuthGuardService