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

313
Vistas
¿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 Respuestas
Responde la pregunta

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 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