2016-11-16 89 views
0

這不是一個真正的問題,但它是一個問題:一個服務與變量很多ngModule

在測試項目中,我嘗試使用多個ngModule與同一TranslateService NG2-翻譯。

的package.json:

"ng2-translate": "^4.0.0" 

它不工作,對於每一個模塊,我必須聲明一個新

'TranslateModule'

而在組件,這是一個新的TranslateService所以它不會保留翻譯語言的價值。

你有沒有試圖在多個ngModule中注入相同的服務?如果是的話,怎麼樣?

感謝。

+0

你讀過[https://github.com/ocombe/ng2-translate#installation](https://github.com/ocombe/ng2-translate#installation)安裝注意事項?它清楚地說明了如何將這個模塊用於所有類。 –

回答

1

儘量共享模塊

import {TranslateModule, TranslateService, TranslateLoader, TranslateStaticLoader} from 'ng2-translate/ng2-translate'; 
    @NgModule({ 
     imports: [..,TranslateModule], 
     declarations: [..], 
     exports: [ .., TranslateModule] 
    }) 
    export class SharedModule { 

    static forRoot(): ModuleWithProviders { 

     function translateLoader(http: Http) { 
      return new TranslateStaticLoader(http, 'i18n', '.json'); 
     } 
     return { 
      ngModule: SharedModule, 
      providers: [UserService, ItemService, { 
       provide: TranslateLoader, 
       useFactory: translateLoader, 
       deps: [Http] 
      }, 
       TranslateService], 
     }; 
    } 
    } 

變化TranslateModule.forRoot()在AppModule.ts到SharedModule.forRoot()。

source

+0

它的工作,但我只是修改這一行: '進口{TranslateModule,TranslateService,TranslateLoader,TranslateStaticLoader}從 'NG2-翻譯/ NG2-翻譯';' 通過 '進口{TranslateModule,TranslateService,TranslateLoader, TranslateStaticLoader} from'ng2-translate';' – Eltron