2017-06-21 54 views
0

使用angular2與@ NGX-轉換模塊@ NGX-翻譯得觀察到不觸發對語言變化

我的代碼,不基於用戶選擇的語言變化,並使用設置語言:

this.translate.use('en'); 

在其他組件中的其他地方,我使用.get observable來檢索一些標籤。

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

當前語言加載罰款最初的標籤,但在執行的時候。使用,標籤不更改爲新的語言。觀察者不會開火。

爲了解決這個問題我必須做到以下幾點:

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');出現了:屬性'流'不存在類型'TranslateService' –