Angular 6:将日期格式管道与异步

时间:2018-08-24 18:27:02

标签: angular

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

dateFormat$: Observable<string>;

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

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

但是在构建期间,出现构建错误:

  

类型'Observable'的参数不能分配给参数   类型'string |未定义”。类型“可观察”不是   可分配给“字符串”类型。

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

1 个答案:

答案 0 :(得分:0)

我迟到了,但这个答案可能会帮助其他人。我试图获得 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());
}

这也可以解决您的问题。