Estou desenvolvendo uma tela que possui um formulário com uma combobox que traz opções de seleção vindas do back-end. Os valor estão vindo corretamento e aparecem na combo, o problema é na hora de salvar o formulário e enviar para o back. O objeto (garagem) não é preenchido com a opção selecionada no combo. Segue o código abaixo:
template html
<section>
<div class="card-form container">
<form [formGroup]="tremForm" *ngIf="tremForm">
<div>
<input type="hidden" formControlName="idTrem" class="form-control" >
</div>
<div class="form-group">
<input formControlName="nome" class="form-control trem-form-input" placeholder="nome">
</div>
<div class="form-group">
<input formControlName="qtdVagoes" class="form-control trem-form-input"
placeholder="qtd de vagões">
</div>
<div class="form-group">
<select formControlName="garagem" class="form-control trem-form-input">
<option selected>Selecione...</option>
<option formControlName="garagem" *ngFor="let garagem of garagens$ | async" [value]="garagem.idGaragem">
{{garagem.nome}}
</option>
</select>
</div>
<div class="btn-group-form">
<button type="submit" (click)="salvar()" class="btn btn-danger btn-salvar">
Salvar
</button>
<button type="submit" (click)="remover()" class="btn btn-danger btn-deletar">
Deletar
</button>
</div>
</form>
</div>
</section>
método que cria o formulário vazio e o método salvar na component
loadEmptyForm(){
this.tremForm = this.formBuilder.group({
idTrem: [''],
nome: ['', Validators.required],
qtdVagoes: ['', Validators.required],
garagem: [null]
});
}
salvar(){
const trem = this.tremForm.getRawValue() as Trem;
this.tremService
.salvar(trem)
.subscribe(
() => this.router.navigate(['trem']),
err => console.log(err)
);
}