我正在使用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完美地编译,但是在使用上会出错。请帮忙,我在这里做错什么了吗?