在Ember格式化货币

时间:2016-01-26 17:13:41

标签: jquery ember.js

我有一个包含多个输入字段的表单,用于输入金额,并在屏幕底部显示总计。我希望用户只能输入数字[0-9],然后输入小数.,最多输入两位数。

首先,我使用了Ember插件ember-inputmask,它可以根据需要正确格式化货币,但如果我点击输入并点击输出而不输入数字,或者我只输入了部分数字并点击了其他total等于NaN

我还试图通过autonumeric.js导入jQuery插件npm并使用它,但没有成功。

只允许在Ember的输入字段中输入货币的最佳方法是什么?

是否有更好的插件或资源如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您所看到的问题并非来自ember-inputmask。这是total未正确格式化的问题。

您可以使用帮助程序格式化总数,无论它是否为有效数字:

<强>助手/ FMT-currency.js

import Ember from 'ember';

export function fmtCurrency(num) {
  num = +num;

  if (isNaN(num)) { return ''; } // You could set this to 0 if you wanted

  num = num.toFixed(2);

  return num.replace(/\B(?=(\d{3})+(?!\d)(?=\.))/g, ',');
}

export default Ember.Helper.helper(fmtCurrency);

<强>一些-template.hbs

${{fmt-currency total}}