Wenn ich Optionsfelder in meinem modellgesteuerten Formular erstelle, funktionieren sie einwandfrei, aber sie haben nicht die Optionsschaltfläche ausgewählt, die durch den Standardwert von formControlName widergespiegelt wird. Zum Beispiel:Optionsfelder in Angular2 Modellgesteuerte Formulare funktionieren nicht wie erwartet
<input type="radio" formControlName="isPublic" name="isPublic" value="false" id="keepPrivate" ><label for="keepPrivate">Keep it Private</label>
<input type="radio" formControlName="isPublic" name="isPublic" value="true" id="makePublic" ><label for="makePublic">Make it Public</label>
{{form.value.isPublic}}
Wenn ich das es funktioniert richtig, aber ich kann der Wert von form.value.isPublic
falsch ist (als Ausgabe in der letzten Zeile zu bestätigen) und noch kein Optionsfeld ist standardmäßig ausgewählt sehen.
Ich habe versucht, dies zu korrigieren, indem ich jeweils [checked]
hinzufüge, um den Standardwert zu fahren. Dies funktioniert beim Laden der Seite, indem die Standardeinstellungen in den Optionsschaltflächen korrekt ausgewählt werden. Es funktioniert sogar für eine Auswahl - in dem ich den anderen Radioknopf auswählen kann, es wird ausgewählt, der erste wird nicht ausgewählt, und der {{form.value.isPublic}}
wird von false
zu true
wechseln.
<input type="radio" formControlName="isPublic" [checked]="!form.value.isPublic" name="isPublic" value="false" id="keepPrivate" ><label for="keepPrivate">Keep it Private</label>
<input type="radio" formControlName="isPublic" [checked]="form.value.isPublic" name="isPublic" value="true" id="makePublic" ><label for="makePublic">Make it Public</label>
{{form.value.isPublic}}
Das Problem kommt, wenn ich das erste Optionsfeld wieder wählen - auf dem ersten Klick auf das Optionsfeld Auswahlzustand gar nicht ändern, aber die {{form.value.isPublic}}
Ausgabe Änderungen zurück auf false gesetzt. Wenn ich erneut darauf klicke, ändert sich der Auswahlzustand für den Radio-Button. Es dauert also zwei Klicks, um es auf den Standard zurück zu schalten. Wenn ich danach wieder auf den anderen klicke, ändert sich das wie erwartet, aber das Zurückschalten auf das erste dauert zwei Klicks (ein Klick aktualisiert den Formularwert und der zweite Klick ändert den Auswahlstatus des Optionsfelds).
Was sollte ich in dieser Situation tun, damit die Optionsfelder korrekt funktionieren und den Standardwert für das Formular wiedergeben?
... ich sollte erwähnen, ja, das alles Innere ist: '
' Auch meine Formulargruppe hat eigentlich nicht den Namen 'form', aber ich mache einfach nur Vanille für den Beitrag. – WillyC