Alle Knockout-Beispiele, die ich gefunden habe, scheinen am Ende eines ObservableArray ein neues Element hinzuzufügen, das Folgendes verwendet:
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?
z.B. etwas wie:
viewModel.SomeItems.push(someNewItem, indexToInsertItAt);
quelle
Für den Knockout-Einsatz
viewModel.SomeItems.unshift(someNewItem);
Siehe auch: http://knockoutjs.com/documentation/observableArrays.html
quelle
Ich habe diese Erweiterungsfunktion gemacht, die für mich gut funktioniert hat. Splice funktionierte bei mir nicht, wenn ich am Ende eines spärlichen Arrays hinzufügte.
ko.observableArray.fn.setAt = function(index, value) { this.valueWillMutate(); this()[index] = value; this.valueHasMutated(); }
Dies funktioniert sogar mit:
var a = ko.observableArray(['a', 'b', 'c']); a.setAt(42, 'the answer');
quelle
this()[index] = value;
zuthis.splice(index, 0, value);
. Danke Adam!