要在Angular 6中将通用服务注入到注入器中,并让它能够访问另一个应用程序注入的变量,可以使用InjectionToken
。
在提供通用服务的模块中,创建一个InjectionToken
。这个InjectionToken
将用作依赖注入的标识符,并允许我们在注入器中提供变量。
import { InjectionToken } from '@angular/core';
export const MY_VARIABLE = new InjectionToken('myVariable');
接下来,在应用程序的根模块中,将变量提供给InjectionToken
:
import { NgModule } from '@angular/core';
import { MY_VARIABLE } from './path-to-service';
@NgModule({
providers: [
{ provide: MY_VARIABLE, useValue: 'myValue' }
]
})
export class AppModule { }
现在,你可以在通用服务中注入变量:
import { Injectable, Inject } from '@angular/core';
import { MY_VARIABLE } from './path-to-service';
@Injectable()
export class MyService {
constructor(@Inject(MY_VARIABLE) private myVariable: string) { }
// 使用myVariable进行其他操作
}
现在,MyService
将能够在注入器中访问MY_VARIABLE
变量的值。