Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1.2K
Vistas
El grupo FormBuilder está en desuso

Migré mi proyecto a angular 11 y noté que las validaciones globales que agregué hacen que FormBuilder.group obsoleto con el mensaje:

 group is deprecated: This api is not typesafe and can result in issues with Closure Compiler renaming. Use the `FormBuilder#group` overload with `AbstractControlOptions` instead.

así que esto está en desuso:

 ingredientForm = this.fb.group({ ingredientType: ['', Validators.required], ingredientFlavor: [''], isMultiFlavor: [''], ingredientBrand: [''], ingredientName: [''], imageFile: [''] }, {validators: [ValidateThirdNumber.validate]});

y sin la opción de validators no lo es.

mi validador ValidateThirdNumber :

 class ValidateThirdNumber { static validate(control: AbstractControl): void { if (control) { const isMultiFlavor = control.get('isMultiFlavor')?.value; const ingredientFlavor = control.get('ingredientFlavor')?.value; const ingredientBrand = control.get('ingredientBrand')?.value; const ingredientName = control.get('ingredientName')?.value; if (isMultiFlavor && ingredientFlavor.trim().length === 0) { control.get('ingredientFlavor')?.setErrors({required_if: true}); } else { control.get('ingredientFlavor')?.setErrors(null); } if (!ingredientFlavor && !ingredientBrand && !ingredientName) { control.get('ingredientName')?.setErrors({required_at_least: true}); control.get('ingredientFlavor')?.setErrors({required_at_least: true}); control.get('ingredientBrand')?.setErrors({required_at_least: true}); } else { control.get('ingredientName')?.setErrors(null); control.get('ingredientFlavor')?.setErrors(null); control.get('ingredientBrand')?.setErrors(null); } if (ingredientBrand && ingredientName && ingredientName === ingredientBrand) { control.get('ingredientName')?.setErrors({not_the_same: true}); control.get('ingredientBrand')?.setErrors({not_the_same: true}); } } } }

¿Cómo lo sobrecargo con AbstractControlOptions?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

También recibo el mismo error, realizo los siguientes cambios.

  • asegúrese de que la firma de su función de validación coincida de esta manera. (Una función que recibe un control y devuelve sincrónicamente un mapa de errores de validación si está presente, de lo contrario es nulo).

    • función Your_Function_Name(ObjectName: AbstractControl): ValidationErrors | nulo { }
  • y puede cambiar el código en el generador de formularios de esta manera.

    • const formOptions : AbstractControlOptions = { validadores: Your_Function_Name };
  • y en el objeto formbuilder pase por encima del objeto formOptions como este

    • this.formObject = this.formBuilder.group({ fullName: ['', [Validators.required]] }, formOptions );
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda