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

316
Visualizações
¿Decirle a una forma reactiva angular que vuelva a pintar?

En esta demostración paso a paso de material de restablecimiento de contraseña, en el primer paso, el correo electrónico se recopila en un emailForm de correo electrónico.

Cuando se hace clic en next , la función de emailControl submitEmail el correo electrónico ingresado.

Este es el código para eso:

 submitEmail() { if (this.emailForm.valid) { const email = this.emailForm.get('email')!.value; this.confirmCodeForm.get('email')!.setValue(email); console.log('THE EMAIL IS: ', this.confirmCodeForm.get('email').value); this.onEmailSubmit.emit(email); } }

Podemos ver que el email de valor de control tiene el email ingresado establecido a través de esta declaración de registro:

 this.confirmCodeForm.get('email').value);

Sin embargo, en el segundo paso, el formulario no se vuelve a pintar y, por lo tanto, el campo de email (que es de readonly ) no refleja la dirección de correo electrónico ingresada.

¿Cómo le decimos a confirmCodeForm que vuelva a pintar después de llamar a setValue en el control de email ?

También intenté usar patchValue así:

 const email = this.emailForm.get('email')!.value; this.confirmCodeForm.patchValue({ email }); console.log('THE EMAIL IS: ', this.confirmCodeForm.get('email').value); this.onEmailSubmit.emit(email);

Y el control tiene el correo electrónico ingresado como su valor, pero el formulario no se vuelve a pintar.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

De acuerdo, fue bastante difícil leer lo que querías lograr aquí. Pero creo que lo tengo. Desea tomar el correo electrónico ingresado del paso 1 y copiarlo en el paso 2 en la entrada de correo electrónico y el valor del formulario. El problema fue que el valor de control se estableció con .setValue(email) pero el código html no reflejó el cambio de valor porque formControlName no apuntaba a eso.

Cambié html para el segundo paso formControlName a correo electrónico y agregué this.confirmCodeForm.updateValueAndValidity(); por si acaso (aunque el último no se requiere explícitamente).

 <mat-form-field> <input type="email" matInput placeholder="email" formControlName="email" readonly /> </mat-form-field>

Ejemplo de trabajo: https://stackblitz.com/edit/angular-ivy-qfeglo?file=src%2Fapp%2Freset-password%2Freset-password.component.ts

about 4 years ago · Juan Pablo Isaza 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