输入指令美分到美元

时间:2016-03-14 03:58:32

标签: angularjs angularjs-directive

我试图创建一个允许我从1美元金额的第1/100列开始的指令。例如,假设我要在我的表单中显示的美元金额是23.76我会开始输入2,3,7,6并且当我输入时,显示的金额将是0.02美元,0.23美元,2.37美元,23.76美元,但我的模块将是以美分2376

我已将codepen放在一起,但遇到了一个带有前导零的问题。例如,输入一个金额,然后将其删除为0,您就会看到我在" Raw值"中的含义。字段,会有尾随零。

我该怎样做才能确保如果我输入一个金额,原始值保持在没有前导零的美分?

2 个答案:

答案 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
        });

codepen