将过滤器编号添加到角度输入

时间:2018-06-11 14:22:33

标签: javascript angularjs

我尝试做的是创建一个输入数字,在模糊时将其值转换为十进制值(如货币),但有几个问题正在做...

HTML(Jade / Pug):

input.input-clean(
  id="itemAmount"
  name="itemAmount"
  type="number"
  placeholder="0.00"
  step="0.01"
  ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/"
  ng-model="item.amount"
  decimal-input
  required
)

decimalInput指令:

App.directive('decimalInput', function ($filter) {

  function link(scope, el, attrs, ngModelCtrl) {
    var $el = $(el);

    function formatter(value) {
      var formattedValue = $filter('number')(value, 2);
      $(el).val(formattedValue);

      ngModelCtrl.$setViewValue(value);
    }

    $el.on('blur', function () {
      var $this = $(this);
      formatter($this.val());
    });
  }

  return {
    require: '^ngModel',
    scope: true,
    link: link
  };
});

发生的事情是第一个数字号码没有触发...我需要按两次才能插入第一个数字...... number过滤器也不会转换我的输入...

如果我输入12345678,结果为12345678,而我预计结果为:12,345,678.00

更新 这是我收到的警告:

  

指定值" 1,123.00"不是有效的数字。价值必须   匹配以下正则表达式:   ? - (\ d + | \ d + \ d + |。。\ d +)?(?[EE] [ - +] \ d +)

0 个答案:

没有答案