0

我有一个正式的表格,mat-inputs里面有很多(是的,我正在使用材料)。我希望他们每个人都有appearance=outline原因,我可以把它放在templateOptions每个输入中。但这不是 DRY。有没有办法在我的应用程序中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
    }
}
4

2 回答 2

2

为什么不用作提供者 MAT_FORM_FIELD_DEFAULT_OPTIONS {外观:'outline'}?我想你想要你所有的输入外观大纲。在你的模块中

  providers: [
    { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline' } },
  ]
于 2020-12-07T11:22:44.263 回答
1

为什么不使用内部模板<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在表单字段配置中定义外观轮廓。来源这里

于 2020-12-02T16:35:23.023 回答