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

213
Vistas
Error de eliminación de formas reactivas de Angular2

Estoy tratando de establecer un estado de control de formulario en válido

 this.currencyForm.controls['currencyMaxSell'].setErrors({smallerThan: true})

ahora quiero eliminar este error.

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Otras soluciones parecen no funcionar. Parece que angular piensa que el control no es válido siempre que la propiedad de errores no sea nula.

Siempre que desee eliminar un solo error y dejar otros, no hay forma de hacerlo sino manualmente. Esta función eliminará solo un error especificado en el argumento y dejará otros. También se asegurará de que si elimina el último error, el control será válido.

 // call it in validator function if control is valid removeError(this.currencyForm.controls['currencyMaxSell'], 'smallerThan'); // this function removes single error function removeError(control: AbstractControl, error: string) { const err = control.errors; // get control errors if (err) { delete err[error]; // delete your own error if (!Object.keys(err).length) { // if no errors left control.setErrors(null); // set control errors to null making it VALID } else { control.setErrors(err); // controls got other errors so set them back } } } // this function adds a single error function addError(control: AbstractControl, error: string) { let errorToSet = {}; errorToSet[error] = true; control.setErrors({...control.errors, ...errorToSet}); }
about 4 years ago · Santiago Trujillo Denunciar

0

Para eliminar solo un error de control de formulario al realizar la validación manual, haga lo siguiente:

 this.myFormGroup.get('myControl').setErrors({'myCustomError':null})

Esto solo actualizará el valor del error especificado y no borrará ninguna validación anterior que haya realizado, a diferencia de setErrors(null) , que anula todo el objeto de errores para el control.

about 4 years ago · Santiago Trujillo Denunciar

0

AFAIK, realmente no necesita usar el método setErrors cuando puede crear validadores personalizados . Puede crear fácilmente validadores personalizados para su formControl o formGroup y dentro de su validador solo necesita devolver un ValidatorFn y no debe usar el método setErrors .

Para obtener más información sobre el validador personalizado para FormGroup, le sugiero que lea este artículo que resolvió mi problema.

Este es mi código de trabajo:

 registerationForm = this.formBuilder.group({ username: ['', [Validators.required, Validators.email]], passwords: this.formBuilder.group( { password: ['', Validators.required], confirmPassword: ['', Validators.required] }, { validator: matchPassword } ), policyAgreement: ['', Validators.required] }); // Outside my component: const matchPassword = (group: FormGroup) => { const password = group.get('password').value; const confirmPassword = group.get('confirmPassword').value; return password != confirmPassword ? { matchPassword: true } : null; };
about 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