2017-06-21 4 views
0

モジュールNGXは、翻訳言語の変化に発射しませ得るNGX-翻訳@、観察が@でangular2使用

ユーザの選択に基づいて言語の変更を行い、使用する言語を設定

Iコード:

this.translate.use('en'); 

他のコンポーネントのどこかで、.get observableを使っていくつかのラベルを取得しています。

現在の言語の初期ラベルは正常に読み込まれますが、.useが実行されると、ラベルは新しい言語に変更されません。観察可能な部分は発火しません。私は次のことを行う必要があり、この問題を回避するには

this.translate.get(element.bucketId.toUpperCase()).subscribe(x => { bucket.bucketLabel = x; }); 
this.translate.onLangChange.subscribe(event => { 
    bucket.bucketLabel = this.translate.instant(element.bucketId.toUpperCase()); 
}); 

これは明らかに、過剰なようです。

パイプとディレクティブを使用するコードは、言語を完全に切り替えます。

私は.getは何を誤解していますか?または、言語切り替えを行うときに私が紛失している他のトリックがあります。単にthis.translate.use(lang)を実行する以外の何か。

答えて

1

.stream()メソッドを試すと、言語が変更されたときに新しい値が返されます。

https://github.com/ngx-translate/core#methods

+0

this.translate.stream( 'DASHBOARD.LOGOUT')。次のようになります:プロパティ 'stream'が型 'TranslateService'に存在しません –

関連する問題