Aplicação Angular tentando preencher as opções em um select com resultados de uma chamada de API:
<select class="select input input-bordered" formControlName="student" (change)="onStudentChange($event)" >
<option *ngFor="let student of students" value="{{student._id}}">{{ student.name }}</option>
</select>
ngOnInit:
ngOnInit(): void {
this.userService.getStudentsByUser(this.authService.currentUserSig()?._id!).subscribe((response) => {
this.students = response;
});
}
O que estou perdendo aqui? Ao depurar localmente e salvar o arquivo HTML, ele preenche magicamente, mas desaparece ao atualizar.
Você já tentou carregar a lista de valores usando
async
pipe? Parece uma boa opção aqui. Isso garantirá que não haja conflitos de tempo e, quando a chamada assíncrona for concluída e não estiver vazia, preencherá a lista.Primeiro, reescreva o código do seu componente para que, em vez de assinar diretamente, você atribua o valor de
getStudentsByUser
a uma variável.Depois é só ajustar o uso no modelo.