首页 > 解决方案 > Angular 6:使用带有异步的日期格式管道

问题描述

在我的 Angular 6 组件中,我有一个如下类型的属性Observable<string>

dateFormat$: Observable<string>;

在模板中,我绑定dateFormat$以使用async管道设置日期格式:

<span>{{data[date.field] | date:(dateFormat$ | async)}}</span>

但是在构建过程中,我收到了构建错误:

'Observable' 类型的参数不能分配给 'string | 类型的参数 不明确的'。类型 'Observable' 不可分配给类型 'string'。

此错误的可能原因是什么,我该如何解决?

标签: angular

解决方案


我晚了,但这个答案可能对其他人有所帮助。我试图获得 async observable 的格式化值,但我遇到了类似的问题。所以我通过创建一个函数来从 BehaviorSubject 获取异步值来解决我的问题,并在这个函数中格式化数据。

value$: Subject<number> = new Subject<number>(99.01);

<span>{{ format(value$) }}</span> 
       <!-- R$ 99,01 -->

format(observable: BehaviorSubject<number>) {
   const frmt = new Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' });
   return frmt.format(observable.getValue());
}

这也可以解决您的问题。


推荐阅读