angularjs货币过滤器在前面添加额外的加号

时间:2016-10-27 19:18:10

标签: angularjs filter currency

我在html中使用了以下方式的过滤器。

var mydata = 20000;

{{mydata | currency : '$' : 2}}

但是,该值显示为+20,000.00 它有一个额外的“+”值。

有没有办法删除它?

谢谢!

2 个答案:

答案 0 :(得分:0)

需要覆盖$ locale数字格式。

appRun.$inject = ['$locale'];
function appRun ($locale) {
  $locale.NUMBER_FORMATS.PATTERNS[1].posPre = '$';
}

答案 1 :(得分:0)

检查以确保您没有覆盖代码中某处的默认货币符号。请参阅以下示例。

<强>的script.js

var app = angular.module('root', []);

app.run(["$locale", function ($locale) {
  $locale.NUMBER_FORMATS.CURRENCY_SYM = "+"
}]);

app.component('root', {
  template: `
  <div>
    <!-- Prints out $20,000 -->
    {{ $ctrl.myData | currency: "$": 2 }}
  </div>
  <div>
    <!-- Prints out +20,000 -->
    {{ $ctrl.myDataPlus | currency }}
  </div>
  `,
  controller: function() {
    this.myData = "20000";
    this.myDataPlus = "20000";
  }
});

<强>的index.html

<html ng-app="root">
  <head>
    <script data-require="angular.js@*" data-semver="1.5.8" src="https://code.angularjs.org/1.5.8/angular.js"></script>
    <script src="script.js"></script>
  </head>

  <body>
    <root></root>
  </body>

</html>