2

这是我抓取数据并调用映射的 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();

在我将数组添加到返回的数据中之前,它似乎可以正常工作。出于某种奇怪的原因,它没有被淘汰赛映射。

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

谢谢。

从服务器返回的数据 敲除映射的数据

4

1 回答 1

3

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

这是一个显示数组映射工作正常的小提琴:

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

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

于 2012-12-30T13:54:24.967 回答