这是我的 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 新手,我是否错过了一些基本的东西?
谢谢。
最佳答案
您是否通过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/