我们需要使用InjectionToken,注入一个值,但是我们得到了以下错误:
在直接转码的过程中,在静态的情况下,会遇到更好的、更好的解析符号值的误差,只有转接元的基本属性、被初始化的变量和常数才能被参考,因为这个转码变量的值被C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts,的转码模板编译器(position 3:12 in the original .ts file)所忽略,解析码元在C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts,中由C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts,中的转码码模板编译器(position 3:12 in the original .ts file),解析码元在C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts,中被C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts,中的关码码元所取代,在C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts,中被C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts,中的关码码元所取代。C:/Projekte/Git/KWKPortal/App/src/app/app.module.ts中的新码元编码
下面是我们如何提供要注入的这个值:
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.module的代码
import { InjectionToken } from '@angular/core';
export let $: any;
export let dnn: any;
export let SF = new InjectionToken<any>('sf');我不知道为什么会发生这种事?useValue不适合这种情况吗?
发布于 2017-05-31 16:13:30
幸运的是,我能够使用工厂解决这个问题,下面是代码:
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 { }我不知道是否有一个更干净的方法来解决这个问题,但这解决了原来的线程。
https://stackoverflow.com/questions/44288117
复制相似问题