//卫士服务
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属性。
发布于 2018-02-22 15:42:18
这是因为您的应用程序路由中有一个canActivate中的大写C字母。确保您已在app.module.ts提供程序阵列中注册了AuthGuardService。
https://stackoverflow.com/questions/48921640
复制相似问题