在Aurelia中使用HTML中的Numeral.js

时间:2018-12-06 17:49:16

标签: html aurelia numeral.js

我有以下工作的Aurelia代码:

total = 9000;
<div class="row pt-2">
  <div class="col-10 text-right">Amount is</div>
  <div class="col-2 text-right">${total}</div>
</div>

我想做的是使用HTML中的Numeral.js库将总变量的格式从9000设置为9000.00。这是我尝试过的:

total = 9000;
<div class="row pt-2">
  <div class="col-10 text-right">Amount is</div>
  <div class="col-2 text-right">${numeral(${total}).format('0.00')}</div>
</div>

以及以下内容:

total = 9000;
<div class="row pt-2">
  <div class="col-10 text-right">Amount is</div>
  <div class="col-2 text-right">numeral(${total}).format('0.00')</div>
</div>

但不幸的是,没有一个有效。我尝试在TypeScript中使用Numeral库,并且工作正常。我在HTML上需要这个。 我反应迅速,请随时提出任何问题。

1 个答案:

答案 0 :(得分:3)

使用值转换器将调用包装为数字。

这就是您的价值转换器的外观。不过,您必须将正确的import语句添加到文件中。

import numeral from 'numeral';

export class CurrencyFormatValueConverter {
  toView(value, format = '0.00') {
    return numeral(value).format(format);
  }
}

然后,您需要使用require元素将值转换器加载到视图中。

<require from="./path/to/file'></require>

然后您可以在视图中使用它。

<div class="row pt-2">
  <div class="col-10 text-right">Amount is</div>
  <div class="col-2 text-right">${total | numeral }</div>
</div> 

或者您可以以自定义格式作为参数来覆盖默认值:

<div class="row pt-2">
  <div class="col-10 text-right">Amount is</div>
  <div class="col-2 text-right">${total | numeral:'($0,0.00)' }</div>
</div> 

顺便说一句,您应该看一下我们的文档,因为它实际上包括此确切的值转换器作为其示例之一:https://aurelia.io/docs/binding/value-converters#value-converters