Wie man mit Knockout.js an einer bestimmten Position ein Element in ein ObservableArray hinzufügt/einfügt
Lesezeit: 2 Minuten
Alle Knockout-Beispiele, die ich gefunden habe, scheinen ein neues Element am Ende eines ObservableArray hinzuzufügen, indem etwa Folgendes verwendet wird:
viewModel.SomeItems.push(someNewItem);
Dadurch wird das Element natürlich am Ende des Arrays platziert.
Wie füge ich dem ObservableArray an einer bestimmten Position ein Element hinzu?
Beispiel hier (nicht Knockout-spezifisch) – Wie fügt man ein Element an einem bestimmten Index in ein Array ein?
Aus den Knockout-Dokumenten –
Bei Funktionen, die den Inhalt des Arrays ändern, wie z. B. Push und Splice, lösen die Methoden von KO automatisch den Abhängigkeitsverfolgungsmechanismus aus, sodass alle registrierten Listener über die Änderung benachrichtigt werden und Ihre Benutzeroberfläche automatisch aktualisiert wird.
Vielen Dank. Spleißen hat funktioniert. Für Knockout-Benutzer ist ko.utils.arrayIndexOf auch nützlich, wenn Sie den Index finden möchten, um Ihr neues Element basierend auf einem vorhandenen Element einzufügen.
– Mark Robinson
6. September 2011 um 11:26 Uhr
Dies funktioniert nicht mit Sparse-Arrays, zumindest nicht für mich in Chrom. Siehe meine Antwort unten
Dies fügt das Element am Anfang des Arrays ein, hilft also nicht, wenn Sie irgendwo in der Mitte ein Element einfügen möchten.
– Mark Robinson
3. August 2012 um 8:03 Uhr
Irgendwie habe ich den Teil über das Einfügen irgendwo im Array verpasst. Ja, das funktioniert nur, wenn Sie am Anfang einfügen möchten. Das tut mir leid.
– Travis Cavanaugh
1. Oktober 2012 um 20:47 Uhr
Ich habe diese Erweiterungsfunktion erstellt, die für mich gut funktioniert hat. Splice funktionierte bei mir nicht, wenn ich am Ende eines spärlichen Arrays etwas hinzufügte.