2017-06-19 103 views
1

在我的組件中,我已經注入了一個服務,它提供當前語言作爲可觀察對象。在該組件的模板,我顯示的價格根據用戶所在的區域幾次,以這種方式:

<p>{{price.toLocaleString(languageService.getCurrentLanguage() | async, { style: 'currency', currency: 'EUR' })}}</p>

的問題是,我有一個像10個async電話都在我的模板,即使languageService實際上將主題作爲一個共享的觀察值返回,每當管道預訂時都有效地創建一個共享流而不是另一個流,我願意相信有更好的方法可以實現此目的。

回答

0

分配可觀察到一個字段並綁定到字段,而不是:

<p>{{price.toLocaleString(currentLanguage() | async, { style: 'currency', currency: 'EUR' })}}</p> 
constructor(languageService:LanguageService) { 
this.currentLanguage = languageService.getCurrentLanguage(); 
} 
+0

我想過這個問題,但在這種情況下,我該怎麼獲得,除了簡潔? – Sammy

+0

'getCurrentLanguage()'只被調用一次。 –

+0

好吧,我會買這個:D 在這種情況下,你認爲值得編寫一個管道來完成整個'.toLocaleString'調用嗎? – Sammy