具有隐含小数点的角度字段

时间:2016-03-16 23:13:53

标签: javascript angularjs format decimal currency

我想创建一个只接受数字并且隐含数据点为两位数的字段。

例如,要获得3,450.65,用户将键入345065而不是3450.65,我们将自动插入小数。

这里有一个完美的例子:http://jsfiddle.net/n6ggtq7a/

除此之外,使用广泛的代码,这些代码无法维护,并且对于此任务而言似乎过于复杂。

然后又有了这个掠夺者:http://plnkr.co/edit/iFnjcq?p=preview

这是完成此任务的,但使用的是jQuery。我想完全不参与jQuery。

我查看了ng-currency

<script>
  angular.module('currencyExample', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.amount = 1234.56;
    }]);
</script>
<div ng-controller="ExampleController">
  <input type="number" ng-model="amount" aria-label="amount"> <br>
  default currency symbol ($): <span id="currency-default">{{amount | currency}}</span><br>
  custom currency identifier (USD$): <span id="currency-custom">{{amount | currency:"USD$"}}</span>
  no fractions (0): <span id="currency-no-fractions">{{amount | currency:"USD$":0}}</span>
</div>

但是这需要有人输入小数点。我觉得这应该存在于某个地方......我错过了一些明显的东西吗?

2 个答案:

答案 0 :(得分:1)

这是一个将整数金额转换为货币的过滤器:

myApp.filter('dollars', function($filter) {
  return function(amount) {
    return $filter('currency')(amount / 100.0);
  }
});

你这样使用它:

{{ amount | dollars }}

这意味着您以整数执行所有会计。

答案 1 :(得分:0)

这里是一个输入字段的指令,它强制执行0-9个数字并插入一个小数点。进行格式化的位有点难看,可能会在2行中完成,但你明白了。

<input decnumber  type="text" name="decNumber" ng-model="decNumber">

输入:

if(array.length != Math.sqrt(array))