嵌套数组的Knockout映射

时间:2012-12-30 08:50:13

标签: 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();

在我将数组添加到返回的数据之前,似乎工作正常。由于一些奇怪的原因,它不会被淘汰映射。

我附加了映射两侧的对象的屏幕截图。一般来说,我是淘汰赛的新手,我错过了一些基本的东西吗?

感谢。

Data returned from server Data mapped by knockout

1 个答案:

答案 0 :(得分:3)

您是否在Shows: Object[0]length: 0判断失败?如果您查看_latestValue,您会看到Array[5]。数组映射到ObservableArray,这是一个函数。在这种情况下,您必须调用函数 - Shows()来访问内部的实数数组。

这是一个小提琴,表明数组映射工作正常:

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

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