【发布时间】:2020-05-22 15:26:49
【问题描述】:
首先我要提到我已经完成了先决条件,并在 google 和 S/O 中搜索了解决方案,发现这要么是未更新的第 3 部分模块上的一般跌倒错误,要么定义的解决方案没有帮助。我跟着他们仍然无济于事。
我得到:
“AppModule”模板编译期间出现错误 装饰器不支持函数调用,但调用了“XXXModule”。
我知道我不允许在 NgModule 声明中使用函数,但我明确列出了提供程序上工厂的使用。除此之外没有forRoot以外的功能。
有人可以指点我正确的方向吗?
我正在尝试在 AppModule 中注册一个模块
app.module.ts:
import etc... all done
@NgModule({
imports: [
XXXModule.forRoot(),
BrowserModule,
xxx.module.ts:
@NgModule({
imports: [
CommonModule,
HttpClientModule
],
providers: [
AuthenticationService,
{ provide: CookieService, useFactory: cookieServiceFactory }
]
})
export class XXXModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: XXXModule,
providers: [
{ provide: XXXConfig, useFactory: xxxFactory}
]
}
}
}
我在同一个文件中也有工厂:
export function cookieServiceFactory() { return new CookieService(); }
export function xxxFactory(): XXXConfig{
return {authUrl: `${environment.apiUrl}/api/authorisation`};
}
在一个单独的文件中我定义了 XXXConfig,这很好导入。
export class XXXConfig {
authUrl: string;
}
【问题讨论】:
-
您好,您解决了吗?更新到 v9 后我也遇到了同样的问题。
标签: angular dependency-injection