0

场景 - 我想在特定字段失去焦点时获取当前字段值、先前字段值和 fieldId 并调用 API 在后端执行一些验证

html

<form [formGroup]="form">
  <formly-form [form]="form" [model]="model" [fields]="fields">
  </formly-form>
</form>

ts

fields: FormlyFieldConfig[] = [
    {
      key: 'Datepicker',
      type: 'datepicker',
      templateOptions: {
        label: 'Datepicker',
        placeholder: 'Placeholder',
        description: 'Description',
        datepickerOptions: {
          dateChange: (field, $event) => {
            console.log(field)
            console.log($event)
          },
        },
      },
    },
  ];

从上面的例子中,假设我有 20 个表单字段,我必须为每个字段实现。有没有一种方法可以从表单字段中处理焦点,而无需实现 FormlyFieldConfig 提供的 change()?

我已经试过了

  1. form.valuechanges.subscribe() 但这对我没有帮助,因为我希望仅在字段丢失焦点时启用此功能
<form [formGroup]="form" (change)="onChange($event)">
  <formly-form [form]="form" [model]="model" [fields]="fields">
  </formly-form>
</form>

在这里,我观察到 change 事件仅针对表单中类型为“input”的字段触发,而不针对其他原生 formly 组件(如“select”或“datepicker”)或已创建的自定义组件

我想知道是否有办法为所有字段获取当前字段值、先前字段值和 fieldId

4

0 回答 0