2017-05-31 5 views
2

私は、ユーザーが言語を切り替えることができるAngularプロジェクトを作成しています。ロケールを動的にすることは可能ですか?DatePipeのロケールを角度2で動的に変更

私はあなたがNgModuleにそれを追加できるのを見ましたが、私はそこに置くと動的ではないと思いますか?それとも何とかサービスなどで何とか変えることができますか?

答えて

2

providersを使用すると、NgModuleのデフォルトのロケールを変更できます。 これを行うにはangular/coreからLOCALE_IDをインポートし、ロケール言語をフェッチしてプロバイダに渡す必要があります。

import { LOCALE_ID } from '@angular/core'; 

@NgModule({ 
    imports: [//your imports], 
    providers: [ 
     { provide: LOCALE_ID, useValue: "en-US" } 
    ] 
}) 

... 
... 
{ 
    provide: LOCALE_ID, 
    deps: [SettingsService],  //some service handling global settings 
    useFactory: (settingsService) => settingsService.getLanguage() //returns locale string 
} 

希望すると、これが役立ちます。

+0

本当に、私は "en-US"変数をアプリケーションの実行中に変更できるようにしたいと思います。 –

+0

そのためには、グローバル設定用のサービスを使用してからプロバイダを追加してください。plzは私が投稿を更新します。 –

+0

応答のおかげで、これは私が必要なものです! –

関連する問題