在 Angular 中,你可以使用轻量级注入令牌(Lightweight Injection Token)来创建可注入的依赖。这通常用于向服务中注入配置信息或其他常量值。相比于使用类作为注入令牌,轻量级注入令牌更为简洁,不需要创建一个实际的类。

以下是使用轻量级注入令牌的步骤:

1. 创建轻量级注入令牌

   使用 InjectionToken 来创建轻量级注入令牌。你可以在模块或服务中定义该令牌。例如:
   import { InjectionToken } from '@angular/core';

   export const MY_CONFIG_TOKEN = new InjectionToken<string>('myConfigToken');

   这里,MY_CONFIG_TOKEN 是一个轻量级注入令牌,它接受一个字符串参数作为可选的描述信息。

2. 使用注入令牌

   在需要注入这个令牌的服务或组件中,通过构造函数注入:
   import { Injectable, Inject } from '@angular/core';
   import { MY_CONFIG_TOKEN } from './path-to-your-token';

   @Injectable({
     providedIn: 'root'
   })
   export class MyService {
     constructor(@Inject(MY_CONFIG_TOKEN) private myConfig: string) {
       // Now myConfig contains the injected value
     }

     // Other methods...
   }

   这里,@Inject(MY_CONFIG_TOKEN) 将 MY_CONFIG_TOKEN 注入到 myConfig 变量中。

3. 在模块中提供值

   在应用的模块中,使用 useValue 属性为轻量级注入令牌提供具体的值:
   import { NgModule } from '@angular/core';
   import { MY_CONFIG_TOKEN } from './path-to-your-token';

   @NgModule({
     providers: [
       { provide: MY_CONFIG_TOKEN, useValue: 'your-config-value' }
     ]
   })
   export class MyModule { }

   这样,当 MyService 被注入到其他组件或服务时,myConfig 将包含值 'your-config-value'。

轻量级注入令牌使得在 Angular 中注入常量或配置信息变得更加简单和清晰。这对于将配置信息从应用中解耦并使其易于维护非常有用。


转载请注明出处:http://www.pingtaimeng.com/article/detail/5001/Angular