我有一个正式的表格,里面有很多
mat-inputs
(是的,我正在使用材质)。我希望它们每个人都有 appearance=outline
,因为我可以将它放在每个输入的 templateOptions
内。但这不是干的。有没有办法为我的应用程序中的每个 appearance
设置默认 mat-input
并且不要将其放在每个输入描述中?
UPD。我按以下方式使用正式表单组件
<formly-form [form]="form" [fields]="fieldsDescription"></formly-form>
form
是通过循环(循环fieldsDescription
数组)和角度形式生成器生成的。 fieldsDescription
是从后端下载的。现在我在每个输入中都输入了appearance=outline
。所以 fieldsDescription
是一个如下所示的对象数组
{
"key": "field_key",
"type": "input",
"templateOptions": {
"label": "A label",
"appearance": "outline",
"placeholder": "",
"required": true
}
}
为什么不使用 MAT_FORM_FIELD_DEFAULT_OPTIONS { Appearance: 'outline' } 作为提供程序?我想你想要你所有的输入外观大纲。在你的模块中
providers: [
{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' } },
]
为什么不使用内部模板
<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
在表单字段配置中定义外观轮廓。来源这里
如果你想一次性全局更改
defaultOptions
,你可以尝试:
import { FormlyConfig } from '@ngx-formly/core';
constructor(private formlyConfig: FormlyConfig) {
this.formlyConfig.setDefaultOptions({
templateOptions: {
appearance: 'outline',
},
});
}