knockout.js - 嵌套数组的 knockout 映射

标签 knockout.js knockout-mapping-plugin knockout-2.0 knockout-mvc

这是我的 JavaScript,它获取数据并调用映射:

function loadData() {
    currentViewModel.isLoading(true);
    $.get('/api/myevents/' + eventId, null, function (data) {
        var details = ko.mapping.fromJS(data);
        currentViewModel.eventDetails(details);
    });
};

var viewModel = function () {
    var _self = this;
    this.eventDetails = ko.observable(null);
    this.isLoading = ko.observable(false);
    this.addShow = function () {
        addShowDialog();
    };
};

var currentViewModel = new viewModel();

ko.applyBindings(currentViewModel);

loadData();

它似乎工作正常,直到我将一个数组添加到返回的数据中。由于某些奇怪的原因,它没有被 knockout 映射。

我已附上映射两侧对象的屏幕截图。总的来说,我是 knockout 新手,我是否错过了一些基本的东西?

谢谢。

Data returned from server Data mapped by knockout

最佳答案

您是否通过Shows: Object[0]length: 0来判断失败?如果您查看_latestValue,您将看到Array[5]。数组映射到 ObservableArray,它是一个函数。您必须调用函数 - Shows(),在本例中 - 才能访问内部的真实数组。

这是一个 fiddle ,显示数组映射工作正常:

http://jsfiddle.net/jearles/VyH6y/

您可以使用此示例来映射到您的确切场景。

关于knockout.js - 嵌套数组的 knockout 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089483/

相关文章:

knockout.js - 从 SQL Server Compact 检索 DateTime 值时出现 "Invalid Date"错误

knockout.js - 击倒依赖可观察射击两次

javascript - 使用 TypeScript 和 RequireJS 进行knockout.mapping

javascript - 数据绑定(bind)样式不适用于 if else 条件

javascript - Knockout - 将值写入 ko.computed

jquery - knockoutjs 我可以使用组件作为表格行吗

javascript - knockoutjs 在 html 上使用逻辑或启用绑定(bind)

javascript - 更新布局时将 knockout 对象复制到另一个对象

typescript - 将分层 JSON 映射到 TypeScript-KnockoutJS 类型对象

javascript - 如何使用 bootstrap 的 table table-hover 类突出显示数据列表中的一行