Die Aktualisierung der Eingabe wirkt sich auf andere Eingaben aus, aber es gibt keine Bindung

8

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:

%Vor%

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:

    
Dennis Callanan 05.09.2017, 09:46
quelle

1 Antwort

3

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.

    
RogerC 05.09.2017, 12:47
quelle