Angular 2 RC6:cli 编译器说 "function calls are not supported"
Angular 2 RC6: cli-compiler says "function calls are not supported"
尝试使用以下命令编译我的 RC6 应用程序时:
ngc -p C:\Path\To\Project
(当我运行命令时我被放在C:\Path\To\Project\node_modules\.bin
里面)
我收到以下错误:
Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 20:25 in the original .ts file), resolving symbol CoreModule in C:/Path/To/Project/app/modules/core/core.module.ts
这是它抱怨的内容:
@NgModule({
imports: [
CommonModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: (http: Http) => new TranslateStaticLoader(http, 'app/languages', '.json'),
deps: [Http]
})
],
如果我删除 TranslateModule.forRoot...
,错误就会消失。
如何按照错误提示用导出函数替换它?
我很幸运:
export function translateStaticLoaderFactory(http: Http) {
return new TranslateStaticLoader(http, 'app/languages', '.json');
}
@NgModule({
imports: [
CommonModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: translateStaticLoaderFactory,
deps: [Http]
})
],
您必须首先将 ng2-translate 更新到 >5.0.0。
我在版本 ~2.5.0 上遇到了同样的问题,导出的函数没有帮助。
所以你的步骤:
- 更新版本>5.0.0
- Isaac 提到的导出函数:
export function translateStaticLoaderFactory(http: Http) {
return new TranslateStaticLoader(http, 'app/languages', '.json');
}
@NgModule({
imports: [
CommonModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: translateStaticLoaderFactory,
deps: [Http]
})
],
尝试使用以下命令编译我的 RC6 应用程序时:
ngc -p C:\Path\To\Project
(当我运行命令时我被放在C:\Path\To\Project\node_modules\.bin
里面)
我收到以下错误:
Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function (position 20:25 in the original .ts file), resolving symbol CoreModule in C:/Path/To/Project/app/modules/core/core.module.ts
这是它抱怨的内容:
@NgModule({
imports: [
CommonModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: (http: Http) => new TranslateStaticLoader(http, 'app/languages', '.json'),
deps: [Http]
})
],
如果我删除 TranslateModule.forRoot...
,错误就会消失。
如何按照错误提示用导出函数替换它?
我很幸运:
export function translateStaticLoaderFactory(http: Http) {
return new TranslateStaticLoader(http, 'app/languages', '.json');
}
@NgModule({
imports: [
CommonModule,
TranslateModule.forRoot({
provide: TranslateLoader,
useFactory: translateStaticLoaderFactory,
deps: [Http]
})
],
您必须首先将 ng2-translate 更新到 >5.0.0。 我在版本 ~2.5.0 上遇到了同样的问题,导出的函数没有帮助。
所以你的步骤:
- 更新版本>5.0.0
- Isaac 提到的导出函数:
export function translateStaticLoaderFactory(http: Http) { return new TranslateStaticLoader(http, 'app/languages', '.json'); }
@NgModule({ imports: [ CommonModule, TranslateModule.forRoot({ provide: TranslateLoader, useFactory: translateStaticLoaderFactory, deps: [Http] }) ],