2017-09-24 3 views
0

J'utilise la forme de réaction et la sélection md du matériau angulaire.Comment sélectionner une valeur dans md-select avec formcontrolname en angulaire 4

C'est ma forme

<md-select placeholder="Parent Category" class="full-width" formControlName="parent_id"> 
    <md-option>None</md-option> 
    <md-option *ngFor="let category of plainCategories" [value]="category.id"> 
    <span *ngIf="category.subcategory.length==0">&nbsp;</span>{{ category.name }} 
    </md-option> 
</md-select> 

Je veux définir la valeur de sélection doctorat en médecine de code et ce que j'ai essayé

onClicked(e){ 
    if (e && e.action == 'edit') { 

    let item = { 
     id: e.item.id, 
     name: e.item.name, 
     slug: e.item.slug, 
     parent_id: e.item.parent_id 
    }; 

    this.categoryForm.setValue(item); 
    } 
} 

Ceci est mise à jour de la valeur de forme ({{categoryForm.val | json}} montre la valeur set) mais l'option de sélection n'affiche pas l'option sélectionnée. Comment puis-je sélectionner l'option md?

enter image description here

Répondre

1

si un ensemble de champs à être mis à jour est pas plein déclarée sous la forme (par exemple, s'il y a aussi l'élément appelé category, en plus id, name, slug et parent_id), puis setValue() ne fonctionnera pas , utilisez patchValue() à la place:

this.categoryForm.patchValue(item); 

vous pouvez également définir la valeur par champ:

this.categoryForm.get('parent_id').setValue(e.item.parent_id); 

voir mon exemple plunker: https://plnkr.co/edit/PftFkCQ5fvLICczt7gAO?p=preview

+0

Merci pour votre réponse. Cela fonctionne parfaitement dans le plnkr quand la valeur est string. Mais mon parent_id est le nombre pourquoi md-option n'est pas sélectionnée. Comment pourrais-je faire le numéro sélectionnable? –

+1

mis à jour mon plunker, widh numériques ID, il peut aussi travailler avec des objets complexes si nécessaire. S'il vous plaît mettre à jour mon plunker si vous avez besoin d'aide supplémentaire et je vais essayer d'aider – Andriy