我有一个json对象列表,我想使用ko映射插件映射到knockout viewmodel列表。以下是我的代码(只是为了解释我的问题,不需要认真对待这段代码):
var itemsList = [
{ Id: 1, Name: 'A' },
{ Id: 2, Name: 'B' },
{ Id: 3, Name: 'C' }
];
var item = function(data) {
ko.mapping.fromJS(data, {}, this);
}
var listOfItems = ko.observableArray();
var listOfItems = ko.mapping.fromJS(itemsList, {
create: function(options) {
return new item(options.data);
}
});
现在我的listOfItems总是空的,为什么??
答案 0 :(得分:0)
您可以真正简化此代码并使其运行良好。
var itemsList = [{ Id: 1, Name: 'A' }, { Id: 2, Name: 'B' }, { Id: 3, Name: 'C' }];
var viewModel = {
listOfItems: ko.mapping.fromJS(itemsList)
}
ko.applyBindings(viewModel);
现在您拥有带有observableArray listOfItems
的viewModel,此数组中的所有项目都包含Id
和Name
个属性。
您可以使用以下代码对其进行测试:
<ul data-bind="foreach: listOfItems">
<li>
<span data-bind="text: Id"></span>
<span data-bind="text: Name"></span>
</li>
</ul>