Definir item selecionado na lista de seleção - Angular2
Eu tenho a seguinte estrutura de dados na minha tabela firebase:
Dentro do meuAngular2
aplicativo, recupero as entradas e as exibo em umselect list
como mostrado aqui:
<select class="form-control" id="lookingFor" formControlName="gender" >
<option value="" selected>Please Select</option>
<option *ngFor="let status of genderValue" [value]="status.id">{{ status.description}}</option>
</select>
Como você pode ver, meu primeiro item da lista é um, por favor selecione, este é selecionado por padrão antes que eles salvem seu perfil. O problema que tenho é que, quando eles salvaram o perfil e recarregaram a página de edição do perfil, o valor selecionado é obviamente 'selecione' quando deve ser masculino ou feminino.
Após algumas pesquisas, adicionei o seguinte atributo[selected]
meu código agora fica assim:
<select class="form-control" id="lookingFor" formControlName="gender" >
<option value="" selected>Please Select</option>
<option *ngFor="let status of genderValue" [value]="status.id" [selected]="editProfileForm.controls.gender">{{ status.description}}</option>
</select>
No entanto, ao executar o projeto, ele selecionamale
como padrão, mesmo se eu excluir o valor deFirebase
permanecerá sempre como masculino selecionado.
Em relação ao que estou fazendo dentro do meu arquivo ts, eu simplesmente chamoFirebase
crie a lista de seleção e chame get Perfil do Usuário, depois passo os valores do perfil para a configuração do meu formulário (reativo).
Então, minha pergunta é: como possoPlease Select
como selecionado se o usuário não especificou seu gênero ou se o especificou, defina o item relevante como selecionado.
NOTA: Eu uso o uniqueId gerado pelo firebase como o valor salvo quando o usuário salva seu perfil.
Esta é a parte em que eu configuro meu formulário:
// userProfile is returned from Firebase
// gender will either have a value or it'll be null.
this.editProfileForm = new FormGroup({
seeking: new FormControl('', Validators.required),
gender: new FormControl(this.userProfile.gender, Validators.required)
});
Após a configuração do editProfileForm, fica claro o valor de gender: