Skip to content

Latest commit

 

History

History
26 lines (20 loc) · 1.62 KB

File metadata and controls

26 lines (20 loc) · 1.62 KB

Missing value accessor

Para todos los controles de formulario personalizados, debes registrar un accessor de valor.

Aquí hay un ejemplo de cómo proporcionar uno:

providers: [
  {
    provide: NG_VALUE_ACCESSOR,
    useExisting: forwardRef(() => MyInputField),
    multi: true,
  }
]

Depurando el error

Como se describió anteriormente, se esperaba que tu control tuviera un accessor de valor, pero le faltaba uno. Sin embargo, hay muchas razones diferentes por las que esto puede suceder en la práctica. Aquí hay una lista de algunos problemas conocidos que llevan a este error.

  1. Si definiste un control de formulario personalizado, ¿recuerdas proporcionar un accessor de valor?
  2. ¿Pusiste ngModel en un elemento sin valor, o en un elemento inválido (por ejemplo, <div [(ngModel)]="foo">)?
  3. ¿Estás usando un control de formulario personalizado declarado dentro de un NgModule? Si es así, asegúrate de estar importando el NgModule.
  4. ¿Estás usando ngModel con un control de formulario personalizado de terceros? Verifica si ese control proporciona un accessor de valor. Si no lo hace, usa ngDefaultControl en el elemento del control.
  5. ¿Estás probando un control de formulario personalizado? Asegúrate de configurar tu testbed para que conozca el control. Puedes hacerlo con Testbed.configureTestingModule.
  6. ¿Estás usando Nx y Module Federation con webpack? Tu webpack.config.js puede requerir configuración adicional para asegurarte de que el paquete de formularios sea compartido.