Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

221
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda