Angular 使用InjectionToken的角度错误
我们需要使用InjectionToken注入一个值,但我们得到以下错误: 静态解析符号值时遇到错误。只能引用初始化的变量和常量,因为此变量的值为ne 由模板编译器编辑(原始.ts文件中的位置3:12),在C:/Projekte/Git/KWKPortal/App/src/App/shared/dnn.module.ts中解析符号$ g C:/Projekte/Git/KWKPortal/App/src/App/App.module.ts中的符号AppModule,解析C:/Projekte/Git/KWKPortal/App/src/App/App.module.ts中的符号AppModule 在C:/Projekte/Git/KWKPortal/App/src/App/App.module.ts中使用符号AppModule 以下是我们如何提供要注入的此值:Angular 使用InjectionToken的角度错误,angular,Angular,我们需要使用InjectionToken注入一个值,但我们得到以下错误: 静态解析符号值时遇到错误。只能引用初始化的变量和常量,因为此变量的值为ne 由模板编译器编辑(原始.ts文件中的位置3:12),在C:/Projekte/Git/KWKPortal/App/src/App/shared/dnn.module.ts中解析符号$ g C:/Projekte/Git/KWKPortal/App/src/App/App.module.ts中的符号AppModule,解析C:/Projekte/Gi
import { SF, $, dnn } from './shared/dnn.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [
{ provide: SF, useValue: $.ServicesFramework(dnn.getVars().ModuleId) }
],
bootstrap: [AppComponent]
})
export class AppModule { }
这是我们的dnn模块的代码:
import { InjectionToken } from '@angular/core';
export let $: any;
export let dnn: any;
export let SF = new InjectionToken<any>('sf');
从'@angular/core'导入{InjectionToken};
出口租赁美元:任何;
出口许可dnn:任何;
导出let SF=新注入令牌(“SF”);
我想知道为什么会这样?
useValue
不适合这种情况吗?我使用工厂解决了这个问题,下面是代码:
export function servicesFrameworkFactory() {
return $.ServicesFramework(dnn.getVars().ModuleId);
}
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [{
provide: SF,
useFactory: servicesFrameworkFactory,
deps: []
}],
bootstrap: [AppComponent]
})
export class AppModule { }
我不知道是否有更干净的方法来解决这个问题,但这解决了原来的问题