angular – 使用CanActivate防护时获取“无提供程序错误”
发布时间:2020-12-17 06:56:37 所属栏目:安全 来源:网络整理
导读:这是警卫: // my.guard.tsimport { Injectable } from '@angular/core';import { ActivatedRouteSnapshot,CanActivate,RouterStateSnapshot } from '@angular/router';Injectable()export class MyGuard implements CanActivate { canActivate(next: Activa
这是警卫:
// my.guard.ts import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot,CanActivate,RouterStateSnapshot } from '@angular/router'; Injectable() export class MyGuard implements CanActivate { canActivate(next: ActivatedRouteSnapshot,prev: RouterStateSnapshot) { console.log('GUARD:',next,prev); return true; } } 这是路由器: import { RouterConfig } from '@angular/router'; import { MyGuard } from './guards/my.guard'; export const AppRoutes : RouterConfig = [ { path: 'home',component: HomeComponent,canActivate: [MyGuard] } ]; 当页面加载时,我得到: EXCEPTION: Error: Uncaught (in promise): No provider for MyGuard! 我见过没有教程提到如何注入MyGuard作为提供者.我该怎么做呢? 解决方法
我的解决方案是在我的AppModule元数据中将AuthGuard服务添加到提供程序:
@NgModule({ ... providers: [AuthGuard],}) export class AppModule {} 为了能够在整个应用程序中使用服务,您需要在AppModule元数据中提供它. https://angular.io/docs/ts/latest/guide/ngmodule.html的“服务提供商”部分给了我一些提示. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |