我试图创建一个允许我从1美元金额的第1/100列开始的指令。例如,假设我要在我的表单中显示的美元金额是23.76我会开始输入2,3,7,6并且当我输入时,显示的金额将是0.02美元,0.23美元,2.37美元,23.76美元,但我的模块将是以美分2376
我已将codepen放在一起,但遇到了一个带有前导零的问题。例如,输入一个金额,然后将其删除为0,您就会看到我在" Raw值"中的含义。字段,会有尾随零。
我该怎样做才能确保如果我输入一个金额,原始值保持在没有前导零的美分?
答案 0 :(得分:0)
为此,您可以尝试使用“number”角度过滤器。将其添加到您的html中:{{moneyVal | number}}
此处的分数大小为0。
<div class="body" ng-app="myApp">
<div class="wrapper" ng-controller="MyCtrl">
<div class="info">Raw Value: {{moneyVal | number}}</div>
<input class="input-phone" type='text' money-input ng-model="moneyVal" />
</div>
</div>
查看代码集here。
注意:这是一个html级别/演示级别的解决方案 希望这有助于...:)
答案 1 :(得分:0)
我一直在破解并想出了这个。这不是最干净的,但它确实起到了作用。
ngModelCtrl.$parsers.push(function(viewValue) {
var value = viewValue.replace(/[^0-9]/g, '')
value = $filter('number')(value, 0)
value = value.replace(/[^0-9]/g, '')
return value
});