在我的组件中,我注入了一个服务,它提供当前语言作为可观察的语言。在该组件模板中,我基于用户的语言环境多次显示价格,以这种方式:
<p>{{price.toLocaleString(languageService.getCurrentLanguage() | async, { style: 'currency', currency: 'EUR' })}}</p>
问题是我在模板上有10个async
个调用,即使languageService
实际上将主题作为共享可观察对象返回,有效创建一个共享流而不是每个不同的流async
管道订阅的时间,我愿意相信有更好的方法可以做到这一点。
答案 0 :(得分:0)
将observable分配给一个字段并改为绑定到该字段:
<p>{{price.toLocaleString(currentLanguage() | async, { style: 'currency', currency: 'EUR' })}}</p>
constructor(languageService:LanguageService) {
this.currentLanguage = languageService.getCurrentLanguage();
}