具有可观察数组的淘汰映射插件难度

时间:2017-03-20 13:52:00

标签: javascript knockout.js knockout-mapping-plugin

刚刚开始使用映射插件进行淘汰赛。但是在阅读完文档之后,我无法弄清楚为什么我的observableArray说这是未定义的。

这是小提琴。 https://jsfiddle.net/zv39qn64/3/

当我运行小提琴时,我收到了ReferenceError:未定义书籍。

JS

$(document).ready(function() {
  getModelFromServer()
});


var data = {
  LibraryName: "My home library",
  Books: [
    { Id : 1, Title : "Oliver Twist" },
    {Id: 2,  Title: "Moby Dick"}
  ]
};


function getModelFromServer() {
  $.ajax({
    type: 'GET',
    cache: false,
    data: data,
    url: '/echo/jsonp/',
    success: function(response) {
    var libraryViewModel = ko.mapping.fromJS(response);
    ko.applyBindings(libraryViewModel);
    }
  });
}

HTML

The library <span data-bind="text: LibraryName"></span>
<ul data-bind="foreach: Books">
<li>
    <span data-bind="text: Id"></span> <span data-bind="text: Title"></span>
 </li>
</ul>

1 个答案:

答案 0 :(得分:1)

function getModelFromServer() {
$.ajax({
    type: 'POST',
    cache: false,
    data: {
        json: JSON.stringify(data)},
    url: '/echo/json/',
    success: function(response) {
    var libraryViewModel = ko.mapping.fromJS(response);
    ko.applyBindings(libraryViewModel);
    }
  });
}

仅将类型更改为发布和数据条目

https://jsfiddle.net/zv39qn64/4/