角度:装饰器中不支持函数调用,但已调用“ SimpleModule”

时间:2018-07-02 11:21:13

标签: angular typescript

我正在使用Angular 5.2.10构建一个库 我在网上看过。我已经在其他库中实现了相同的逻辑,但是只有这个库给我以下错误:

  

在“ AppModule”函数调用的模板编译期间发生错误时出现错误   装饰器中不支持,但调用了'SimpleModule'。

代码:

export class SimpleModule {
  public static forRoot(config?: ModuleConfig): ModuleWithProviders {
    return {
      ngModule: SimpleModule,
      providers: [
        {
          provide: ConfigLoader,
          useFactory: loaderFactory,
          deps: [config, WIDGET_CONFIG, HttpClient]
        },
        {
          provide: WIDGET_CONFIG,
          useFactory: configFactory,
          deps: [config]
        },
        SharedService,
        ViewService,
      ]
    };
  }
  constructor (@Optional() @SkipSelf() parentModule: SimpleModule) {
    if (parentModule) {
      throw new Error(
        'SimpleModule is already loaded. Import it in the AppModule only');
    }
  }
}

工厂功能:

export interface ModuleConfig {
  loader?: Provider;
  options?: WidgetConfig;
}
export function configFactory(config: any) {
  return (config && config.options) ? config.options : DefaultConfig;
}

export function loaderFactory(config: any, widgetConfig: WidgetConfig, http:  HttpClient): Provider {
  return (config && config.loader) ? config.loader : new DefaultWidgetConfigLoader(widgetConfig, http);
}

它可以与ng-packagr完美地编译,但是在使用上会出错。请帮忙,我在这里做错什么了吗?

0 个答案:

没有答案