【问题标题】:Format currency in AngularJS in ngModel在 ngModel 中的 AngularJS 中格式化货币
【发布时间】:2013-11-11 06:09:56
【问题描述】:

我正在尝试在使用 AngularJS 加载页面时格式化货币。但是,如果我在 ngModel 中使用过滤器货币,它就不起作用。它似乎只适用于 {{var |currency}}。

P.S.:我希望它在 ngModel 上工作,并且我希望在页面加载时对货币进行格式化。

【问题讨论】:

  • 你能显示实际不起作用的代码吗?
  • 你能证明你尝试过的代码吗?在 js 过滤器可以使用语法 $filter('currency')(amount[, symbol])

标签: angularjs


【解决方案1】:

试试这个:

HTML

<!doctype html>
<html ng-app="App">
<head>
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>
  <script type="text/javascript" src="script.js"></script>
</head>
<body>

  <div ng-controller="Ctrl">
    <span>Amount1: {{amount1 | currency:"USD$"}}</span><br/>
    <span>Symbol2: <input ng-model="symbol2"/></span><br/>
    <span>Amount2: <input ng-model="amount2"/></span><br/>
  </div>

</body>
</html>

JavaScript

angular.module('App', []);

function Ctrl($scope) {
  $scope.amount1 = 1234.56;
  $scope.symbol2 = 'USD$';
  $scope.amount2 = '1234.56';
}

Plunker example

如果这没有帮助,请检查: Getting a currency format pattern from AngularJS filter

【讨论】:

  • 格式化 ngModel 的方法不对我在 html 中没有看到任何使用货币格式化程序的 ngModel
【解决方案2】:

如果您想在 html 中而不是在 ng-model 中使用过滤器,这是一种替代方法:

&lt;input type="text" ng-model="var" value="var|currency"/&gt;

您可以将其添加到 value 属性中。

【讨论】:

  • 如果输入类型是数字,这不起作用。有什么办法吗?
  • 如果输入的是数字,你将无法在上面有货币符号。
  • 出现此错误:该值必须与以下正则表达式匹配:-?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\ d+)?详细信息:输入 type="number" 更改为 type="text" 现在没有错误但仍然无法正常工作。
  • 这对我不起作用。 value="var|currency" 有条件吗?
猜你喜欢
  • 1970-01-01
  • 2012-01-29
  • 2016-04-25
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多