Angular的InjectionToken抛出“没有提供InjectionToken”的错误。
创始人
2024-10-24 06:01:14
0

在Angular中,当你使用InjectionToken时,如果没有提供相应的InjectionToken,就会抛出没有提供InjectionToken的错误。这通常发生在以下几种情况下:

  1. 没有在模块的providers数组中提供InjectionToken

    import { InjectionToken } from '@angular/core';
    
    // 创建一个InjectionToken
    export const MY_TOKEN = new InjectionToken('myToken');
    
    @NgModule({
      // 没有在providers中提供MY_TOKEN
      providers: [],
      ...
    })
    export class AppModule { }
    

    解决方法是在模块的providers数组中提供InjectionToken

    import { InjectionToken } from '@angular/core';
    
    export const MY_TOKEN = new InjectionToken('myToken');
    
    @NgModule({
      providers: [
        // 提供MY_TOKEN
        { provide: MY_TOKEN, useValue: 'myValue' },
      ],
      ...
    })
    export class AppModule { }
    
  2. 在组件或服务的构造函数中使用InjectionToken,但没有提供相应的InjectionToken

    import { Component, Inject } from '@angular/core';
    import { MY_TOKEN } from './app.module';
    
    @Component({
      selector: 'app-my-component',
      template: '...',
    })
    export class MyComponent {
      // 在构造函数中使用MY_TOKEN但没有提供
      constructor(@Inject(MY_TOKEN) private myValue: string) { }
    }
    

    解决方法是在提供InjectionToken的模块中提供相应的值:

    import { Component, Inject } from '@angular/core';
    import { MY_TOKEN } from './app.module';
    
    @Component({
      selector: 'app-my-component',
      template: '...',
    })
    export class MyComponent {
      constructor(@Inject(MY_TOKEN) private myValue: string) { }
    }
    
    @NgModule({
      providers: [
        { provide: MY_TOKEN, useValue: 'myValue' },
      ],
      ...
    })
    export class AppModule { }
    

请注意,InjectionToken可用于解决依赖注入中的循环依赖问题以及在编译时进行类型检查。确保在使用InjectionToken时遵循上述解决方法,以避免抛出没有提供InjectionToken的错误。

相关内容

热门资讯

透视工具!aapoker安装包... 透视工具!aapoker安装包怎么使用(透视)aapoker万能辅助器,AA德州教程(有挂揭秘)1、...
透视数据!aapoker辅助工... 透视数据!aapoker辅助工具安全吗(透视)aapoker插件,安装教程(有挂细节);1、这是跨平...
透视总结!aapoker怎么设... 透视总结!aapoker怎么设置提高好牌几率(透视)aapoker辅助器是真的吗,解密教程(有挂揭秘...
透视系统!aapoker如何设... 透视系统!aapoker如何设置胜率(透视)aa poker透视软件,2025新版教程(有挂解说)1...
透视挂!aapoker辅助器怎... 透视挂!aapoker辅助器怎么用(透视)aapoker ai插件,解密教程(有挂揭秘)1.aapo...
透视中牌率!aa poker透... 透视中牌率!aa poker透视软件(透视)aapoker透视插件,解密教程(有挂解说)1、操作简单...
透视规律!aapoker免费透... 透视规律!aapoker免费透视脚本(透视)aapoker插件下载,AI教程(有挂揭秘)1、aapo...
透视新版!aapoker辅助工... 透视新版!aapoker辅助工具安全吗(透视)aapoker万能辅助器,教你攻略(有挂黑科技)1、构...
透视系统!aapoker安装包... 透视系统!aapoker安装包怎么使用(透视)aapoker透视插件,解说技巧(有挂细节)小薇(透视...
透视透视!aapoker俱乐部... 透视透视!aapoker俱乐部靠谱吗(透视)aapoker俱乐部靠谱吗,黑科技教程(有挂细节);1、...