Angular forly: 有没有办法为所有输入设置默认选项
Angular formly: is there a way to set default options for all inputs
我有一个正式的表格,里面有很多 mat-inputs
(是的,我正在使用 Material)。我希望他们每个人都有 appearance=outline
因为我可以把它放在每个输入的 templateOptions
里面。但这不是干的。有没有办法在我的应用程序中为每个 mat-input
设置默认值 appearance
并且不将其放在每个输入描述中?
UPD. 我按以下方式使用表单组件
<formly-form [form]="form" [fields]="fieldsDescription"></formly-form>
form
是用循环(在 fieldsDescription
数组上循环)和 angular 表单生成器生成的。 fieldsDescription
从后端下载。现在我把 appearance=outline
放在每个输入中。所以 fieldsDescription
是一个像下面这样的对象数组
{
"key": "field_key",
"type": "input",
"templateOptions": {
"label": "A label",
"appearance": "outline",
"placeholder": "",
"required": true
}
}
为什么不使用内部模板 <mat-form-field appearance="outline">
?假设你在那里使用 ngFor
。
乐:
fields: FormlyFieldConfig[] = [
{
key: 'Input',
type: 'input',
templateOptions: {
label: 'Input',
placeholder: 'Placeholder',
description: 'Description',
required: true,
appearance: 'outline',
},
},
];
对于 Formly,您可以使用 templateOptions
在表单字段配置中定义外观轮廓。来源 here
为什么不用作提供者 MAT_FORM_FIELD_DEFAULT_OPTIONS { appearance: 'outline' }?我想您想要所有输入的外观轮廓。在你的模块中
providers: [
{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' } },
]
我有一个正式的表格,里面有很多 mat-inputs
(是的,我正在使用 Material)。我希望他们每个人都有 appearance=outline
因为我可以把它放在每个输入的 templateOptions
里面。但这不是干的。有没有办法在我的应用程序中为每个 mat-input
设置默认值 appearance
并且不将其放在每个输入描述中?
UPD. 我按以下方式使用表单组件
<formly-form [form]="form" [fields]="fieldsDescription"></formly-form>
form
是用循环(在 fieldsDescription
数组上循环)和 angular 表单生成器生成的。 fieldsDescription
从后端下载。现在我把 appearance=outline
放在每个输入中。所以 fieldsDescription
是一个像下面这样的对象数组
{
"key": "field_key",
"type": "input",
"templateOptions": {
"label": "A label",
"appearance": "outline",
"placeholder": "",
"required": true
}
}
为什么不使用内部模板 <mat-form-field appearance="outline">
?假设你在那里使用 ngFor
。
乐:
fields: FormlyFieldConfig[] = [
{
key: 'Input',
type: 'input',
templateOptions: {
label: 'Input',
placeholder: 'Placeholder',
description: 'Description',
required: true,
appearance: 'outline',
},
},
];
对于 Formly,您可以使用 templateOptions
在表单字段配置中定义外观轮廓。来源 here
为什么不用作提供者 MAT_FORM_FIELD_DEFAULT_OPTIONS { appearance: 'outline' }?我想您想要所有输入的外观轮廓。在你的模块中
providers: [
{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' } },
]