Hier ist mein HTML:
%Vor% Wie Sie sehen können, habe ich eindeutige Namen für checkboxes
festgelegt, um sie vollständig zu isolieren.
formData
folgt einer Struktur wie dieser:
Das Formular wird korrekt ausgefüllt.
Checkboxen werden korrekt generiert, es gibt jedoch ein seltsames Verhalten:
Wenn ich auf das Kontrollkästchen für die erste Spalte klicke, wird auch das Kästchen für die zweite Spalte aktiviert; das scheint wie totales zufälliges Verhalten, aber wenn ich ein Kästchen für die zweite Spalte ankreuze, hat es keine Auswirkungen auf das Kontrollkästchen für die erste Spalte
Irgendwelche Ideen, warum das passiert?
BEARBEITEN
Beobachtung : Ich habe input
in eine Standardeingabe (nicht Checkbox) geändert.
Ich habe die Formularwerte in "true", "false" .. anstelle von true, false geändert.
Wenn ich versuche, den Text in der Eingabe zu ändern, kann ich nur ein Zeichen eingeben und das Eingabefeld "abwählen" (dh ich muss immer auf das Eingabefeld klicken, um es jedes Mal zu aktivieren, wenn ich ein Zeichen eintippe) / p>
BEARBEITEN
HTML-Ausgabe wie gewünscht:
Mit TrackBy in der zweiten ngFor es für mich funktioniert:
Vorlage:
%Vor%Komponente:
Definieren Sie die Funktion trackByIndex:
%Vor%Der Grund, ein trackBy zu verwenden, wird hier erläutert (Gutschrift geht an zoechi@github ):
Sie iterieren die Elemente, die Sie bearbeiten, und sie sind primitiv Werte. ngFor kann nicht nach Identität verfolgen, wenn der Wert ändert sich von 1 nach 3 (durch Bearbeitung) wird es zu einer anderen Identität. Verwenden Sie entweder einen benutzerdefinierten TrackBy, der nach Index verfolgt oder Objekte verwendet anstelle von primitiven Werten.
Tags und Links javascript html angular angular2-directives