Ich habe diese Daten JSON vom Server:Knockout-Mapping JSON Update vorhandene Ansicht Modell
{"HaveNotification":false,"IsError":false,"Title":null,"Description":null}
und ich versuche, diese Ansicht Modell über ko.mapping zu füllen:
var notifyVM = {
HaveNotification: ko.observable(true),
IsError: ko.observable(false),
Title: ko.observable('Title goes here'),
Description: ko.observable('Description goes here'),
}
mit diesem Code , die auf einem Abfrageintervall genannt wird:
function pollNotifications() {
$.getJSON('@Url.Action("GetNotifications", "Home")', function (data) {
ko.mapping.fromJSON(data, notifyVM);
setTimeout(pollNotifications, 10000);
});
}
und dies ist Seite zu laden Code:
$(function() {
ko.applyBindings(notifyVM);
setTimeout(pollNotifications, 10000);
});
aber es funktioniert nicht. Wenn ich das Ansichtsmodell nach dem fromJSON-Aufruf überprüfe, werden die Observablen nicht aktualisiert, sie haben immer noch ihre Anfangswerte.
UPDATE: Einige weitere Informationen ... wenn ich dies tun in den pollNotifications funktionieren
var newVM = ko.mapping.fromJSON(data);
Ich stelle fest, dass die Ansicht Modell erstellt es ist nicht das gleiche wie mein ein, es besteht aus einem einzigen beobachtbaren Funktion, während meine ist ein Objekt mit einer Reihe von beobachtbaren Eigenschaften.
versuche ko.mapping.fromJS zu verwenden –