【问题标题】:ERROR in Error during template compile of 'AppModule' Function calls are not supported in decorators but 'XXXModule' was called错误在“AppModule”模板编译期间出现错误装饰器不支持函数调用,但调用了“XXXModule”
【发布时间】: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


【解决方案1】:

这个问题已经解决了。该代码引用了错误的内部代码。由于之前已打包,因此进口商品从不同的位置拉出。一旦这些在新包中得到纠正,它就可以正常工作。

【讨论】:

    猜你喜欢
    • 2020-12-29
    • 2018-12-04
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多