我如何格式化 Angular-formly 中的值
How do i format a value in Angular-formly
只有在模糊处理后,我才必须将我的输入值从数字转换为货币。
但是我只能在console.log里面写,难道不能在view里面写回去吗?
Look at the Demo
并打开控制台。写任何数字,你就会看到转换器做了什么。我需要输入字段中的值。
解决方案是创建一个使用以下选项之一的 custom field type:
ngx-currency
https://stackblitz.com/edit/ngx-formly-custom-template-ol5cs9
ngx-mask
- 依赖于
ControlValueAccessor
的自定义指令:https://stackblitz.com/edit/angular-hv7mnc
我是按照下面的方式做的,我们可以在模板选项下使用模糊事件
templateOptions: {
label: 'Minimum Value',
placeholder: 'Minimum Value',
type: 'text',
keydown: (field, $event) => {
return ValidateNumericChars(field, $event);
},
focus: (a, event) => {
event.target.value = Number(event.target.value.replace(/[^0-9.-]+/g, ""));
},
blur: (a, event) => {
event.target.value = this.utility.formatCurrency(event.target.value);
}
},
这对我有用:
{
key: 'scorePoints',
type: 'input',
templateOptions: {
label: 'Points',
placeholder: 'Insert Points',
type: 'number',
required: false,
allowedKeys: '[0-9]',
}
}
这允许用户只输入数字,
虽然当我收到模型的值时,我将它作为一个字符串获取,但足以将其转换为数字..
但是,如果您想收到一个数字,最好初始化模型。
将对象字段设置为 0 已经强制该字段以数字形式返回。
form = new FormGroup({});
model : MyFormInterfaceModel ={
levelName:'Level 1',
scorePoints:0
};
只有在模糊处理后,我才必须将我的输入值从数字转换为货币。 但是我只能在console.log里面写,难道不能在view里面写回去吗?
Look at the Demo 并打开控制台。写任何数字,你就会看到转换器做了什么。我需要输入字段中的值。
解决方案是创建一个使用以下选项之一的 custom field type:
ngx-currency
https://stackblitz.com/edit/ngx-formly-custom-template-ol5cs9ngx-mask
- 依赖于
ControlValueAccessor
的自定义指令:https://stackblitz.com/edit/angular-hv7mnc
我是按照下面的方式做的,我们可以在模板选项下使用模糊事件
templateOptions: {
label: 'Minimum Value',
placeholder: 'Minimum Value',
type: 'text',
keydown: (field, $event) => {
return ValidateNumericChars(field, $event);
},
focus: (a, event) => {
event.target.value = Number(event.target.value.replace(/[^0-9.-]+/g, ""));
},
blur: (a, event) => {
event.target.value = this.utility.formatCurrency(event.target.value);
}
},
这对我有用:
{
key: 'scorePoints',
type: 'input',
templateOptions: {
label: 'Points',
placeholder: 'Insert Points',
type: 'number',
required: false,
allowedKeys: '[0-9]',
}
}
这允许用户只输入数字, 虽然当我收到模型的值时,我将它作为一个字符串获取,但足以将其转换为数字..
但是,如果您想收到一个数字,最好初始化模型。
将对象字段设置为 0 已经强制该字段以数字形式返回。
form = new FormGroup({});
model : MyFormInterfaceModel ={
levelName:'Level 1',
scorePoints:0
};