2016-09-06 56 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

應該是正確的。 –