gpt4 book ai didi

typescript - NoProviderError 在 Angular 2 中使用 CanActivate

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:02 26 4
gpt4 key购买 nike

我将 Angular 2 与 Router 3.0.0-aplha.8 一起使用。

我正在尝试使用 CanActivate 函数来检查用户是否已通过身份验证。我有一个实现 CanActivate 的 AuthGuard,现在我只返回 true。

route.ts

import { Injectable } from '@angular/core'
import { provideRouter, RouterConfig, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router} from '@angular/router';

import { AuthGuard } from './auth-guard'

import { SecurityComponent } from './security/security.component';
import { AdminDashboardComponent } from './admin/admin.dashboard.component';


export const mainRoutes: RouterConfig = [
{ path: '', component: SecurityComponent, },
{ path: 'admin', component: AdminDashboardComponent, terminal: true, canActivate: [AuthGuard] }]

export const MAIN_ROUTER_PROVIDER = provideRouter(mainRoutes);

auth-guard.ts

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

@Injectable()
export class AuthGuard implements CanActivate {
constructor(private router: Router) {}

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot){
return true;
}
}

当我尝试访问“/admin”(AdminDashboardComponent)时,出现此错误:

enter image description here

我不知道发生了什么。有人有什么想法吗?

谢谢伊万

最佳答案

我认为如果您将 MAIN_ROUTER_PROVIDER 更改为

export const MAIN_ROUTER_PROVIDER = [provideRouter(mainRoutes), AuthGuard];

它应该可以工作。

关于typescript - NoProviderError 在 Angular 2 中使用 CanActivate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38129212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com