Angular 使用InjectionToken的角度错误

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

我们需要使用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

以下是我们如何提供要注入的此值:

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 { }
我不知道是否有更干净的方法来解决这个问题,但这解决了原来的问题