Le constructeur de formulaire angulaire 2,4 setvalue() ne fonctionne pas comme prévu lorsqu'il est utilisé dans des menus déroulants.Formbuilder setvalue() ne fonctionne pas comme prévu lorsqu'il est utilisé dans les menus déroulants
J'ai la liste déroulante suivante, sélectionnez qui obtient peuplé avec les organisations Github:
<select name="org" formControlName="organizations">
<option *ngFor="let org of organizations" [ngValue]="org">{{org.organization.login}}</option>
</select>
Voici le code javascript qui définit l'organisation Github qui doit être sélectionné.
this.pipelineForm = fb.group({
name:'',
organizations:'',
repos: '',
branches:'',
runtime:'',
versions:''
});
userService.getOrganizations().subscribe((org:github)=>{
let organizationName = org.data[0];
this.organizations = org.data;
this.projects.subscribe((p)=> {
p[1].project.subscribe((f)=>{
this.pipelineForm.get("organizations").setValue(f.organizations, {onlySelf: true});
//this.pipelineForm.patchValue(f);
});
});
});
j'attends l'option correspondante déroulant à sélectionner lorsque je passe la valeur à la setValue()
. Au lieu de cela, je reçois une option vide. J'ai également essayé avec patchValue()
. Pas de chance.
Utilisez 'compareWith' pour fournir une fonction de comparateur. https://angular.io/api/forms/SelectControlValueAccessor –