EDIT: Ich möchte in der Lage sein, jedes Element in das Objekt, nicht nur speziell zu altern.So fügen Sie ein Element in eine JSON in Knockout.js
Gibt es eine Möglichkeit, Elemente in einem JSON in Knockout.js hinzuzufügen? Ich möchte Alter in dieses vorhandene JSON unten hinzufügen und es auf der Webseite widerspiegeln. Die Klickfunktion in meinem Code fügt dem JSON das Alter hinzu, zeigt es aber nicht auf der Seite an. Ich habe auch versucht cleanNode() + applybindings zu verwenden, um die Bindungen wieder anzuwenden, aber die Elemente in der foreach sind
dupliziert html:
<div data-bind="text: $data.name, visible: $data.name !== undefined" ></div>
<div data-bind="text: $data.age, visible: $data.age !== undefined" ></div>
<div data-bind="foreach: children">
<div data-bind="text: $data.name"></div>
</div>
<button id="button">Test</button>
Code:
json = {
name: 'Scott',
children: [
{ id : 1, name : 'Alice' },
{ id : 2, name : 'Liv' }
]
}
var viewModel = ko.mapping.fromJS(json);
ko.applyBindings(viewModel, document.body);
document.getElementById("button").addEventListener("click", function() {
json.age = "87";
ko.mapping.fromJS(json, viewModel);
});
Geige Beispiel : https://jsfiddle.net/f8qbu1j8/6/