Knockout: проблема сопоставления/привязки JSON

Я пытаюсь получить базовый пример работы с приветствием, получая json, автоматически отображая его, а затем привязывая к наблюдаемому, я уверен, что получаю что-то основное неправильно.

JSON вернулся из вызова ajax

"{\"Content\":\"hello world\"}"

JS

function ViewModel() {
var self = this;

self.message = ko.observable();

$.getJSON("/home/getmessage", function (response) {
    var mapped = ko.mapping.fromJSON(response);
    self.message(mapped.Content);
});
};

ko.applyBindings(new ViewModel());

Я получаю следующее вместо «привет, мир», которое я ожидал

function c(){if(0<arguments.length){if(!c.equalityComparer||!c.equalityComparer(d,arguments[0]))c.I(),d=arguments[0],c.H();return this}a.U.La(c);return d}

person Tom Riley    schedule 12.09.2012    source источник


Ответы (1)


Отсортировано, я упустил из виду тот факт, что ko.mapping возвращает наблюдаемые значения, поэтому вам нужно вызывать их как функцию, чтобы получить их значение.

function viewModel() {
var self = this;

self.content = ko.observable();

$.getJSON("/home/getmessage", function (response) {
    var mapped = ko.mapping.fromJSON(response);
    self.content(mapped.Content());
});
}

ko.applyBindings(new viewModel);
person Tom Riley    schedule 12.09.2012