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' } },
  ]