Angular2 - Bouton Radio De Liaison
Je veux utiliser le bouton radio dans un formulaire à l'aide Angulaire 2
Options : <br/>
1 : <input name="options" ng-control="options" type="radio" value="1" [(ng-model)]="model.options" ><br/>
2 : <input name="options" ng-control="options" type="radio" value="2" [(ng-model)]="model.options" ><br/>
modèle.options valeur initiale est 1
lorsque la page est chargée, le premier bouton radio n'est pas cochée et que les modifications ne sont pas liées à la le modèle
Une Idée ?
- Radio liste dynamique exemple ici freakyjolly.com/how-to-show-radio-input-listing-in-angular-6
Vous devez vous connecter pour publier un commentaire.
utilisation [valeur]="1" au lieu de value="1"
Edit:
Comme suggéré par thllbrg "angulaire 2.1+ utilisation
[(ngModel)]
au lieu de[(ng-model)]
"[(ngModel)]
au lieu de[(ng-model)]
. Lire à nouveau.value="1" [(ngModel)]="model.options"
. Joignant levalue
entre crochets ne fonctionnait pas[value]="'1'"
?Note - bouton radio de liaison est maintenant un fonctionnalité prise en charge dans RC4 à partir de - voir cette réponse
Bouton Radio exemple à l'aide personnalisée RadioControlValueAccessor similaire à CheckboxControlValueAccessor (mis à Jour avec Angulaire 2 rc-1)
App.ts
template.html
radio_value_accessor.ts
Source : https://github.com/angular2-school/angular2-radio-button
Plunker démo live : http://plnkr.co/edit/aggee6An1iHfwsqGoE3q?p=preview
this._renderer.setElementProperty(this._elementRef.nativeElement, 'checked', value == this._elementRef.nativeElement.value);
Mon manuel de solution de contournement, ce qui implique de mettre à jour manuellement
model.options
lorsqu'un nouveau bouton radio est sélectionné:Ce Plunker montre ci-dessus, ainsi que la façon d'utiliser un bouton pour changer le bouton d'option sélectionné -- c'est à dire, de prouver que la liaison de données dans les deux sens:
get debug()
fonction de quoiget
signifie ? la deuxième est: est-il de tous les autres comme cette réponse pour les cases à cocher ? veuillez fournir des code de cases trop. merci +1 pour la grande réponse.{{debug(abc)}}
? Et qu'est-ce queabc
?abc
est juste de chaîne, je veux convertir en nombre. si tu veux l'envoyer en tant que paramètre de HTML d'un côté classe et attendreget debug
méthode renvoie la chaîne de caractères en nombre.debug()
pouvez faire ce que vous voulez... ou vous pouvez créer un autre composant de méthode. Vous pouvez appeler cette nouvelle méthode comme ceci{{debug2('abc')}}
de HTML si vous définissez la méthode comme cecidebug2(myString:string) { ... }
dans le composant.{{debug2('abc')}}
et queabc
n'est pas accepté dans la méthodedebug2(string){....here abc is not accepted}
je ne sais pas pourquoi ? ici, c'est mon démo plunkr plnkr.co/modifier/SxNyNBGVUJgAfXUKvzrz?p=previewAnotherdate('2015-05-18T02:30:56')
ne fonctionne pas. Setters appelée lorsque vous essayez d'attribuer une valeur à une propriété. Dans mon plunker j'ai créé unsetDate()
fonction de\hat accepte une nouvelle valeur à la date d', qui attribue alors àAnotherdate
. Cette cession va automatiquement appeler le setter.ngDoCheck()
dans le AppComponent dans le plunker pour compte de détection des changements de cycles. À partir de ce que nous voyons que la détection de changement est appelé 3 fois. Le dev mode, les liaisons sont vérifié deux fois, d'où l'6 fois.Ici est la meilleure façon d'utiliser les boutons radio dans Angular2. Il n'est pas nécessaire d'utiliser le (clic) un événement ou d'une RadioControlValueAccessor pour changer de lier la valeur de la propriété, le réglage de [vérifié] bien fait le tour.
J'ai publié un exemple de l'aide de boutons radio:
Angulaire 2: comment créer des boutons radio enum et ajouter les deux sens de la liaison?
Il fonctionne à partir d'au moins Angulaire 2 RC5.
Ce Problème est résolu dans la version Angulaire 2.0.0-rc.4, respectivement dans les formes.
Inclure
"@angular/forms": "0.2.0"
dans le paquet.json.Puis étendre votre fichier d'amorçage principal. La partie pertinente de l':
J'ai cela en .html et fonctionne parfaitement:
valeur: {{outil de build}}
disableDeprecatedForms
etprovideForms
semble magique et n'a pas de sens. Que faire de ces choses? C'est redondant illisible code faire des choses imprévisibles de l'inconnu échelle.J'ai été la recherche de la bonne méthode de traiter les boutons radio voici un exemple pour une solution que j'ai trouvé ici:
Avis de la onSelectionChange qui passe à l'élément courant de la méthode.
Entrée Radio ne semble pas être encore pris en charge.
Il devrait y avoir une radio de la valeur d'entrée de l'accesseur (semblable à de la case à cocher un, où elle définit des "coché" attr ici) mais je n'ai pas trouvé. J'ai donc mis en œuvre un; vous pouvez le vérifier ici.
[valeur]="élément" à l'aide de *ngFor travaille également avec des Formes Réactives Angulaire 2 et 4
Voici une solution qui fonctionne pour moi. Il implique le bouton radio de liaison, mais pas de liaison de données de l'entreprise, mais au lieu de cela, la liaison à l'état du bouton radio. Il n'est probablement PAS la meilleure solution pour les nouveaux projets, mais qui est approprié pour mon projet. Mon projet a une tonne de code existant écrit en une autre technologie dont je suis le portage Angulaire. L'ancien code suit un modèle dans lequel le code est très intéressée par l'examen de chaque bouton radio pour voir si il est sélectionné. La solution est une variante de la cliquez sur gestionnaire de solutions, dont certaines ont déjà été évoquées sur un Débordement de Pile.
La valeur ajoutée de cette solution peut être:
Cette solution implique
Exemple:
...
...
Lorsque l'utilisateur clique sur un bouton radio, le selectButton méthode de la classe helper
est appelé. Il est adopté le modèle du bouton radio qui a cliqué.
La classe helper définit le booléen "sélectionné" du passé dans le modèle de vrai, et définit le champ "sélectionnés" de tous les autres bouton radio des modèles de faux.
Lors de l'initialisation du composant doit construire une instance de la classe d'aide avec une liste de tous les bouton radio les modèles du groupe. Dans l'exemple, "radioButtonGroupList" serait une instance de la classe helper dont le code est:
La suite de ma question, veuillez tenir compte de l'ajout de la radio d'entrée à l'intérieur de la
form
de la balise et de l'utilisation de la[value]
balise pour afficher la valeur.Solution la plus simple et la solution de contournement:
J'ai créé une version en utilisant seulement un événement de clic sur les éléments chargés et le dépassement de la valeur de la sélection dans la fonction "getSelection" et la mise à jour du modèle.
Dans votre modèle:
Votre classe:
Voir l'exemple: https://plnkr.co/edit/2Muje8yvWZVL9OXqG0pW?p=info
Autant que cette réponse pourrait ne pas être la meilleure en fonction de votre cas d'utilisation, il fonctionne. Au lieu d'utiliser le bouton Radio pour les Mâles et de Femelles de sélection, à l'aide de la
<select> </select>
fonctionne parfaitement, à la fois pour l'enregistrement et l'édition.Ci-dessus doit faire bien, pour l'édition à l'aide de FormGroup avec
patchValue
. Pour la création, vous pouvez utiliser[(ngModel)]
au lieu de laformControlName
. Fonctionne encore.Les travaux de plomberie impliqué avec le bouton radio one, j'ai choisi d'aller avec le sélectionner à la place. Visuellement et UX-sage, il ne semble pas être le meilleur, mais à partir d'un point de vue du développeur, c'est une tonne plus facile.
Cela peut ne pas être la bonne solution mais c'est aussi l'option espère que ça aidera quelqu'un.
Jusqu'à maintenant, j'ai eu l'obtention de la valeur des composants radiobutton à l'aide de (sur) la méthode comme suit:
et dans le .fichier ts, j'ai mis la valeur de la variable prédéfinie pour getter valeur de
onChange
fonction.Mais après recherche j'ai trouvé la bonne méthode que j'ai pas encore essayé mais il semble que celui-ci est bon à l'aide de
[(ng-model)]
lien est ici pour github ici. c'est à l'aide deRadioControlValueAccessor
pour la radio ainsi que la case en trop. ici, c'est le travail #plnkr# pour cette méthode ici.