Angular 17 - 函数式守卫 - 错误 NullInjectorError: NullInjectorError: 未提供者
创始人
2024-10-15 12:01:03
0

这个错误通常发生在Angular中使用函数式守卫时,没有正确提供必要的依赖项。解决方法是确保在模块的providers数组中正确提供所需的依赖项。

以下是一个解决该错误的示例:

  1. 首先,确保你的守卫函数中依赖的服务正确导入。
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot } from '@angular/router';

@Injectable()
export class MyGuard implements CanActivate {
  constructor(private myService: MyService) {} // 假设守卫依赖MyService服务

  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot): boolean {
    // 守卫逻辑
    return true;
  }
}
  1. 然后,在你的模块中正确提供这个守卫和守卫所依赖的服务。
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { MyGuard } from './my-guard';
import { MyService } from './my-service';

const routes: Routes = [
  { path: 'example', component: ExampleComponent, canActivate: [MyGuard] }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  providers: [MyGuard, MyService], // 确保在这里提供守卫和服务
  exports: [RouterModule]
})
export class AppRoutingModule { }

通过以上步骤,你已经正确提供了守卫和守卫所依赖的服务,应该不再出现"NullInjectorError: NullInjectorError: 未提供者"错误。

相关内容

热门资讯

透视ai!聚星ai辅助工具下载... 透视ai!聚星ai辅助工具下载(透视)一直是有挂(详细辅助解密教程)1、ai辅助优化,发牌逻辑科技护...
透视新版!德州之星扫描器(透视... 透视新版!德州之星扫描器(透视)都是真的有挂(详细辅助解密教程)1、每一步都需要思考,不同水平的挑战...
透视计算!德扑HHpoker有... 透视计算!德扑HHpoker有挂吗(透视)果然真的有挂(详细辅助详细教程)1、透视辅助简单,软件透明...
透视存在!德普之星透视免费(透... 透视存在!德普之星透视免费(透视)总是有挂(详细辅助黑科技教程)1、进入游戏-大厅左侧-新手福利-激...
透视能赢!hhpoker视频巡... 透视能赢!hhpoker视频巡查真的假的(透视)总是是真的有挂(详细辅助必赢教程)1、玩家可以在软件...
透视代打!德普之星辅助工具如何... 透视代打!德普之星辅助工具如何打开(透视)原来是真的有挂(详细辅助2025教程)1、该软件可以轻松地...
透视数据!wpk官网下载链接(... 透视数据!wpk官网下载链接(透视)果然真的是有挂(详细辅助技巧教程);1、下载好辅助软件之后点击打...
透视规律!aapoker透视脚... 透视规律!aapoker透视脚本(透视)都是有挂(详细辅助2025新版教程)1、完成aapoker透...
透视软件!大菠萝辅助器(透视)... 透视软件!大菠萝辅助器(透视)竟然是有挂(详细辅助安装教程);1、玩家可以在软件透明挂俱乐部对游戏的...
透视教程!wepoker好友助... 透视教程!wepoker好友助力码(透视)真是是真的有挂(详细辅助存在挂教程)1、机器人多个强度级别...