我想创建一个只接受数字并且隐含数据点为两位数的字段。
例如,要获得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>
但是这需要有人输入小数点。我觉得这应该存在于某个地方......我错过了一些明显的东西吗?
答案 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))