Para enviar una data de un formulario que se introdujo en un componente hacia el formulario que está en otro componente, por ejemplo de register a login, para pre-rellenar algún campo como email; vamos a utilizar los queryParams. Al momento de navegar vamos a decirle que quiero enviarle un parámetro de tipo query, asÃ:
// En el componente register
this.router.navigate(['/login'], {
queryParams: { email }
});
En el formulario de Login, vamos a importar ActivatedRoute, el cual lee los parametros que vienen en la url, lo inyectamos en el constructor y luego obtenemos el email que lo guardamos en una constante y hacemos el setValue para rellenar el campo en el respectivo input.
import { Router, ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-login-form',
templateUrl: './login-form.component.html'
})
export class LoginFormComponent {
constructor(
private formBuilder: FormBuilder,
private router: Router,
private authService: AuthService,
private route: ActivatedRoute
) {
this.route.queryParamMap.subscribe(params => {
const email = params.get('email');
if (email) {
this.form.controls.email.setValue(email);
}
})
}
}
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?