2016-09-06 34 views
3

当尝试使用下面的命令来编译我的RC6应用:角2 RC6:CLI编译器说:“函数调用,不支持”

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...错误消失。

如何使用导出的函数替换此错误,因为错误意味着什么?

+0

我经历了同样的问题来了。我试着用useFactory替换useFactory::<上面的导出函数>没有运气。这个问题可能是因为ng2-translate的开发者没有在他们的.d.ts和.js文件中推送* .metadata.json文件。 PS:不要认为.forRoot()方法调用是问题,ngc可以很好地解决这些问题。 –

回答

0

必须更新NG2-转化为> 5.0.0首先的。 我在版本〜2.5.0上遇到了同样的问题,导出的函数没有帮助。

所以,你的步骤:

  1. 更新版> 5.0.0
  2. 导出功能由艾萨克提到:

export function translateStaticLoaderFactory(http: Http) { return new TranslateStaticLoader(http, 'app/languages', '.json'); }

@NgModule({ imports: [ CommonModule, TranslateModule.forRoot({ provide: TranslateLoader, useFactory: translateStaticLoaderFactory, deps: [Http] }) ],

4

我有一些运气这样做:

export function translateStaticLoaderFactory(http: Http) { 
 
    return new TranslateStaticLoader(http, 'app/languages', '.json'); 
 
} 
 

 
@NgModule({ 
 
imports: [ 
 
    CommonModule, 
 
    TranslateModule.forRoot({ 
 
     provide: TranslateLoader, 
 
     useFactory: translateStaticLoaderFactory, 
 
     deps: [Http] 
 
    }) 
 
],

+1

我使用完全相同的代码 - 对我来说没有运气:( – MiB

+0

应该是正确的。 –