自定义货币过滤器到angularjs中的输入字段

时间:2015-02-05 06:58:07

标签: angularjs

如何使用angularjs将值格式化为印度货币类型。 例如, 454565到4,54,565.00

我有这样的输入字段:

<input type="text"  ng-model="item.cost />  

2 个答案:

答案 0 :(得分:0)

function FormatMyNumber(yourNumber) {
    // Limit to two decimal places 
    yourNumber = parseFloat(yourNumber).toFixed(2);
    //Seperates the components of the number
    var n = yourNumber.toString().split(".");
    //Comma-fies the first part
    n[0] = n[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    //Combines the two sections
    return n.join(".");
}

FormatMyNumber(454565); //yields 454,565.00

答案 1 :(得分:0)

您可以如下创建指令

HTML

  <div ng-app="myApp">
    <div ng-controller="myCtrl">
      {{amount}}
      <input format-to-currency amount="amount">
    </div>
  </div>

JS

  angular.module('myApp', [])
    .controller('myCtrl', function($scope) {
      $scope.ampunt = 2;
    })
    .directive('formatToCurrency', function($filter) {
      return {
        scope: {
          amount: '='
        },
        link: function(scope, el, attrs) {
          el.val($filter('currency')(scope.amount));

          el.bind('focus', function() {
            el.val(scope.amount);
          });

          el.bind('input', function() {
            scope.amount = el.val();
            scope.$apply();
          });

          el.bind('blur', function() {
            el.val($filter('currency')(scope.amount));
          });
        }
      }
    });

链接http://jsfiddle.net/moL8ztrw/6/