在这种情况下我该如何使用管道

How can i use pipe in this case

我有这个号码来自我的 api

"vlr": 1749109.14

而且我必须合成才能显示

174.910.914

我尝试使用管道,但无法获得我想要的格式。

有没有办法获得这种格式,或者最好更改来自 api 的值?

根据我的说法,您有 2 个解决方案:

    1. 在您接收此数据的服务中创建一个函数,并直接在服务中格式化。
    1. 创建管道并计算值。
  1. (服务名称)
getData(): Observable<any> {
  return this.http.get<any>(...).pipe(
    map(res => this.formatValue(res.vlr))
  );
}

private formatValue(value: number): string {
  let temp = value.toString().replace('.', '');
  return temp.match(/.{1,3}/g).join(".");
}

(组件)


vlr: string;

constructor(service: ServiceName) {
  this.service.getData().subscribe(res => {
    console.log(res);
    this.vlr = res.vlr;
  });
}

  1. ts
vlr = 1749109.14;

html

<span>{{ vlr | formatVlr }}</span>

(管道)

transform(value: number): string {
  let temp = value.toString().replace('.', '');
  return temp.match(/.{1,3}/g).join(".");
}