在自定义管道中应用现有管道

Apply existing pipe in a custom pipe

我有一个 Precision Pipe 可以给我所需的精度数字...但是,该管道不使用任何其他数字格式,如本地千位分隔符等。

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'precision' })
export class PrecisionPipe implements PipeTransform {
  transform(value: number | string, precision: number): string {
    return typeof value === 'number' ? value.toFixed(precision) : value;
  }
}

有没有办法在我的 Precision 管道中应用 'number' 管道来对其进行本地化?

知道

> 444444.5.toFixed(2)
'444444.50'

// I need "444 444.50"

一种可能性是使用 HTML

中的连续管道
<div>{{ myNumber | precision:myPrecision | number }}</div>

如果没有,我在我的 PrecisionPipe 中尝试了 DecimalPipe:

import { Pipe, PipeTransform } from '@angular/core';
import { DecimalPipe } from '@angular/common';

@Pipe({ name: 'precision' })
export class PrecisionPipe implements PipeTransform {
  transform(
    value: number | string,
    precision: number,
    locale?: string | undefined,
    digitsInfo?: string | undefined,
  ): string | number | null {

    let pipe = new DecimalPipe(locale ?? "en");
    return isFinite(+value) ?
      pipe.transform((+value).toFixed(precision), digitsInfo, locale)
      : value;
  }
}

唯一的“问题”是最后一个选项要求您明确设置管道中的当前语言...