2017-10-16 3 views
0

Je souhaite utiliser NgFor pour créer un ensemble de boutons radio dans le cadre d'un formulaire. Ils apparaissent très bien mais dès que je reçois NgModel il se casse de sorte que cliquer sur l'un d'entre eux sélectionne toujours le dernier (sauf le dernier qui sélectionne l'avant-dernier).Création de boutons radio avec NgFor

I have set up a plunk of the issue

Tout semble fonctionner très bien si vous retirez la ngModel de la fin de la ligne 12 dans le modèle, mais sans que ma forme est morte dans l'eau. Droite?

Tout conseil serait génial. Je suis un newb approprié aux formes et un newb relatif à NgModel.

Vive

Répondre

1

Supprimez la partie attr lors de la liaison à votre saisie.

A partir de ceci:

<input type="radio" name="gameType" [attr.id]="'gameType'+i" [attr.value]="i" ngModel> 

à ceci:

<input type="radio" name="gameType" [id]="i" [value]="i" ngModel> 

est ici modifié plunker

+0

Grand. Cela a fonctionné un régal. Donc, 'id' et' value' ne sont-ils pas des attributs? Est-ce une chose prop vs attr? – popClingwrap

+0

Oui. Ils sont la propriété native donc vous n'avez pas besoin du préfixe attr – brijmcq

0

Vous pouvez simplement modifier les paramètres suivants:

<input type="radio" name="gameType" [attr.id]="'gameType'+i" [attr.value]="i" ([ngModel])="defaultSpecs[i].model"> 

Ceci va dire ngModel utiliser deux voies de liaison (banane dans la syntaxe de la boîte ajoutée) et muter votre defaultSpecs objet à inclure une propriété appelée modèle qui contient un booléen qui indique s'il est sélectionné ou non.

Votre objet defaultSpecs est référencé en utilisant l'index des répétitions comme tableau.