Ich versuche, eine Anwendung zu aktualisieren, die Knockout früher nicht verwendet hat. Wenige Eingabefelder erhalten Daten vom Server/von der Datenbank, wenn wir die Auswahloption ändern. Jetzt versuche ich einen Bericht basierend auf den gefüllten Eingabefeldern mit Knockout zu erzeugen. Wenn diese Eingabefelder jedoch Daten aus der Datenbank abrufen, werden sie auf der Benutzeroberfläche nicht aktualisiert. Zum BeispielKnockout-Eingabe-Bindung
<input type = "text" id = "ip1" data-bind = "value:ip1"></input>
erhält Daten aus der Datenbank.
In dem Bericht versuche ich den Wert aus der Datenbank zu aktualisieren.
<tr><td>Left Margin:</td><td><strong data-bind="text:ip1"></strong></td></tr>
Ansicht Modell:
function ViewModel() {
\t \t self = this;
\t \t self.ip1 = ko.observable();
};
var vm = new ViewModel();
ko.applyBindings(vm);
Die Funktion, die Daten aus der Datenbank zum Abrufen separat geschrieben mit Hilfe von JavaScript, Ajax, PHP, xmlhttp.
Wenn ich jetzt die Auswahloption ändere, werden die Eingabefelder aktualisiert, aber im Bericht werden die Daten nicht aktualisiert.
Wie Sie die neuen Daten vom Server verarbeiten sind? Sie müssen 'ip1' mit' vm.ip1 (newValue) 'setzen, damit alles weiter funktioniert. Sie sollten ** nicht ** versuchen, Werte über Code über das DOM zu aktualisieren. – user3297291