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: 未提供者"错误。

相关内容

热门资讯

透视规律!微扑克微乐辅助(透视... 透视规律!微扑克微乐辅助(透视)wpk软件是真的吗-一直真的是有挂(哔哩哔哩)1、微扑克微乐辅助模拟...
透视规律!德普之星私人局辅助器... 透视规律!德普之星私人局辅助器(透视)德普之星app安卓版破解版-确实有挂(哔哩哔哩)德普之星app...
透视线上!aapoker公共底... 透视线上!aapoker公共底牌(透视)hhpoker是正品吗-切实是真的挂(哔哩哔哩)1、首先打开...
连日来!hhpoker万能辅助... 连日来!hhpoker万能辅助器(透视)德州局hhpoker-竟然是有挂(哔哩哔哩)1、hhpoke...
经调查!aapoker怎么设置... 经调查!aapoker怎么设置提高好牌几率(透视)hhpoker有辅助吗-一贯存在有挂(哔哩哔哩)a...
透视辅助!hhpoker透视码... 透视辅助!hhpoker透视码(透视)hhpoker辅助靠谱吗-原来真的有挂(哔哩哔哩)1、金币登录...
透视线上!德州局hhpoker... 透视线上!德州局hhpoker(透视)hhpoker真的有透视吗-确实真的是有挂(哔哩哔哩)1、用户...
透视模拟器!werplan辅助... 透视模拟器!werplan辅助软件(透视)佛手在线是不是有挂-果然是真的挂(哔哩哔哩)1、在佛手在线...
最终!aa poker辅助包(... 最终!aa poker辅助包(透视)xpoker辅助怎么用-都是存在有挂(哔哩哔哩)1、进入游戏-大...
黑科技辅助挂!aapoker怎... 黑科技辅助挂!aapoker怎么控制牌(透视)德州局hhpoker-竟然是真的挂(哔哩哔哩)1、进入...