装饰器不支持函数调用,但已调用'NgForageModule'

时间:2019-06-24 18:13:06

标签: angular

升级到Angular 7后,我无法使用AOT(使用Ionic)创建构建。

我运行ionic cordova build android并获得

ERROR in Error during template compile of 'AppModule'
  Function calls are not supported in decorators but 'NgForageModule' was called.

app.module.ts:

import {NgForageModule, Driver} from 'ngforage';

...

imports: [
    NgForageModule.forRoot({
      name: 'next-storage',
      driver: [
        Driver.INDEXED_DB,
        Driver.WEB_SQL,
        Driver.LOCAL_STORAGE
      ]
    }),
    ...
]
...

2 个答案:

答案 0 :(得分:0)

我必须使用提供的DEFAULT_CONFIG并将自定义配置从imports移到providers

app.module.ts中的更改:

import {Driver, NgForageOptions, DEFAULT_CONFIG} from 'ngforage';

...

const ngfRootOptions:NgForageOptions = {
  name: 'next-storage',
  driver: [
    Driver.INDEXED_DB,
    Driver.WEB_SQL,
    Driver.LOCAL_STORAGE
  ]
};

...

providers: [
    {
      provide:  DEFAULT_CONFIG,
      useValue: ngfRootOptions
    }
    ...
]
...

答案 1 :(得分:0)

此处是Ngforage的作者。

这是Angular 7中引入的一个怪异的回归。ng6和ng7之间的库中没有任何变化,但是,当我在ng7中使用forRoot安装它时,我遇到了相同的错误并使用了{{ 1}}成为唯一的配置解决方案。

本来应该用Ivy修复的,但是还没有到ng8。如果ng9仍然存在问题,我将完全删除DEFAULT_CONFIG API。

供参考: