刚开始使用映射插件进行淘汰。但是,在阅读了文档之后,我无法弄清楚为什么我的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>

最佳答案

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/

关于javascript - 带有可观察数组的 knockout 映射插件难度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42905400/

10-09 18:06