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的错误。

相关内容

热门资讯

透视科技!pokemmo脚本辅... 透视科技!pokemmo脚本辅助(透视)竟然存在有挂(详细辅助软件教程)1、首先打开最新版本,在首页...
透视教学!pokermaste... 透视教学!pokermaster脚本(透视)真是存在有挂(详细辅助2025新版总结)1、上手简单,内...
透视新版!红龙poker作弊指... 透视新版!红龙poker作弊指令(透视)本来真的是有挂(详细辅助玩家教你);1、进入游戏-大厅左侧-...
透视肯定!德州局hhpoker... 透视肯定!德州局hhpoker(透视)真是是真的有挂(详细辅助必备教程)1、玩家可以在软件透明挂俱乐...
透视存在!wpk插件(透视)一... 透视存在!wpk插件(透视)一贯存在有挂(详细辅助解说技巧)辅助器中分为三种模型:软件透明挂辅助挂、...
透视实锤!epoker免费透视... 透视实锤!epoker免费透视脚本(透视)都是真的是有挂(详细辅助AI教程)1、系统规律教程、辅助透...
透视脚本!wepoker辅助是... 透视脚本!wepoker辅助是真的吗(透视)切实有挂(详细辅助安装教程)运辅助工具,进入游戏界面。进...
透视实锤!aapoker怎么拿... 透视实锤!aapoker怎么拿好牌(透视)总是存在有挂(详细辅助新版2025教程)1、让任何用户在无...
透视数据!wepoker辅助器... 透视数据!wepoker辅助器安装包(透视)原来是有挂(详细辅助辅助教程)该软件可以轻松地帮助玩家将...
透视科技!红龙poker辅助工... 透视科技!红龙poker辅助工具(透视)竟然真的有挂(详细辅助可靠教程)1、红龙poker辅助透视辅...