📅  最后修改于: 2020-12-09 05:23:29             🧑  作者: Mango
如果需要在Aurelia应用程序中转换某些值,则可以使用转换器,而不是手动将值转换为所需的格式。
当我们要将默认日期值转换为某些特定格式时,可以使用momentJS库。这是一个用于处理日期的小型库。
C:\Users\username\Desktop\aureliaApp>jspm install moment
让我们创建一个新文件converters.js 。我们将使用此文件添加转换器特定的代码。使用以下命令或手动创建文件。
C:\Users\username\Desktop\aureliaApp>touch converters.js
在此文件中,我们将导入矩量库并将DateFormatValueConverter设置为仅返回月,日和年的值,而没有其他数据。需要注意的重要一点是,Aurelia可以识别任何以ValueConverter结尾的类。这就是为什么我们的类名称为DateFormatValueConverter的原因。此类将注册为dateFormat ,我们以后可以在视图中使用它。
import moment from 'moment';
export class DateFormatValueConverter {
toView(value) {
return moment(value).format('M/D/YYYY');
}
}
在app.js中,我们将仅使用当前日期。这将是我们的视图模型。
export class App {
constructor() {
this.currentDate = new Date();
}
}
我们已经在自定义元素一章中讨论了require 。管道符号|用于应用转换器。我们仅使用dateFormat,因为这是Aurelia注册DateFormatValueConverter的方式。
${currentDate | dateFormat}
这是货币格式的示例。您会注意到,该概念与以上示例相同。首先,我们需要从命令提示符处安装数字库。
C:\Users\username\Desktop\aureliaApp>jspm install numeral
转换器将设置货币格式。
import numeral from 'numeral';
export class CurrencyFormatValueConverter {
toView(value) {
return numeral(value).format('($0,0.00)');
}
}
视图模型将只生成一个随机数。我们将其用作货币值并每秒更新一次。
export class App {
constructor() {
this.update();
setInterval(() => this.update(), 1000);
}
update() {
this.myCurrency = Math.random() * 1000;
}
}
我们的视图将显示随机生成的数字转换为货币。
${myCurrency | currencyFormat}