2017-06-19 55 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