我有以下工作的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上需要这个。 我反应迅速,请随时提出任何问题。
答案 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