答えて
DecimalPipeのAngularのドキュメントによると、https://angular.io/api/common/DecimalPipeには、書式設定に使用される文字を例外的に変更するためにパイプ呼び出しに追加できる明示的な引数はありません。
プロジェクト全体のロケールや関連するデフォルト値を変更したくない場合は、特別なケースを扱う独自のパイプを作成するのがベストショットです。心配しないで、パイプは非常に書きやすいです。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'numberfr'
})
export class FrenchDecimalPipe implements PipeTransform {
transform(val: number): string {
// Format the output to display any way you want here.
// For instance:
if (val !== undefined && val !== null) {
return val.toLocaleString(/*arguments you need*/);
} else {
return '';
}
}
}
NgModuleに追加して使用することを忘れないでください。
大きな数値の場合、toLocaleStringは失敗します。例えば9007199254740991より大きい。それ以上の値は安全なJS数値ではない。 – Shantanu
@ Shantanu、うわー、ちょうどこのJSの制限について、おかげで学んだ!あなたが 'MAX_SAFE_INTEGER'を超えている場合でも、書式設定関数よりも心配する必要があるようです。私の答えを改善するための提案はありますか? –
私の解決策は以下の通りです。それは誰かに役立つでしょう。
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'amountConverter'
})
export class AmountConverterPipe implements PipeTransform {
transform(value: number | string, locale?: string): string {
return new Intl.NumberFormat(locale, {
minimumFractionDigits: 2
}).format(Number(value));
}
}
桁数は、minimumFractionDigitsの値を変更して変更できます。次のように使用できるHTMLで
<span class="strong">{{Price | amountConverter:locale}}</span>
数値形式は、ロケールの値に応じて変化します。
詳しくは、https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormatを参照してください。
- 1. パイプでULリストをレンダリングする方法角度4?
- 2. 角度指令に補間値を設定する方法は?
- 3. ディレクティブとngModelの値を角度4で取得する方法
- 4. 角度を指定してコンストラクタ引数をスキップする角を返す方法
- 5. 角度4 + Reduxの設定でフォームを処理する方法
- 6. 角4 FilterByパイプ
- 7. 角度4 - プログラムによる値変更でパイプをトリガーする方法(キーボードイベントなし)
- 8. 角度2特定のデータを指定する方法
- 9. パイプとアンダーライン番号
- 10. サービスでコンポーネント変数を更新する方法角度4
- 11. 角度4でコールバック関数を使用する方法は?
- 12. htmlフィールドの値を角度4で設定する
- 13. 角度2の指令定義を上書きする方法
- 14. 角度2.0パイプ
- 15. 角度2パイプ
- 16. 角度5ではなく角度4のプロジェクトを作成する方法は?
- 17. 角度の指示子コントローラに値を渡す方法は?
- 18. 角度ui-bootstrapタブディレクティブにhrefパラメータを指定する方法
- 19. 角度2の数値パイプからカンマを取り除く
- 20. 角度jsのチェックリスト値に複数の値を設定する方法
- 21. ui-selectでデフォルト値を角度で設定する方法は?
- 22. 角度4で範囲スライダ(角度材)を作成する方法は?
- 23. 角 - 姓のパイプでソートする方法
- 24. 角度4エラー:未指定のname属性
- 25. onclickイベントで角度4のスパン値を取得する方法は?
- 26. 角度日付パイプ
- 27. 角度2 .Replaceパイプ
- 28. 角度jsの数値テキストボックスの書式設定方法は?
- 29. 角4 Ngif指令使用方法
- 30. 角度4のラムダ関数
[角度2.0の数値のロケールを設定する方法](https://stackoverflow.com/questions/37684360/how-to-set-locale-for-numbers-in-angular-2-0)の可能な複製 – Pac0
私はそうは思わない。私は、OPはデフォルトのセパレータを変更する方法を探しているのではなく、むしろ例外的なものを指定する引数をパイプに与えていると思います。残念ながらAngularのDecimalPipeでは後者は不可能です。あなたは自分のパイプを書くことができます。 –