从我的服务器我收到一个看起来像这样的对象:
var fromServer = {
foo: "Some foo",
barArray: [ "bar1", "bar2", "bar3", "bar4", "bar5" ]
};
使用映射插件进行淘汰赛,我想自定义视图模型的构建方式并将数组分解为长度为 2 的子数组。像这样:
viewModel: {
foo: "Some foo",
barArray: [ ["bar1", "bar2"], ["bar3", "bar4"], ["bar5"] ]
}
在去那里的路上,我意识到create
每个数组项都会调用一次回调。这是我的看法:
<h1 data-bind="text: foo"></h1>
<ul data-bind="foreach: barArray">
<li data-bind="text: $data.name"></li>
</ul>
和javascript:
var fromServer = { foo: "Some foo", barArray: [ "bar1", "bar2", "bar3", "bar4", "bar5" ] };
var mapping = {
'barArray': {
create: function(options) {
return new barModel("This is " + options.data);
}
}
};
var barModel = function(data) {
this.name = data;
};
var viewModel = ko.mapping.fromJS(fromServer, mapping);
ko.applyBindings(viewModel);
这是真正的问题:使用create
回调,我可以一次访问整个数组,而不是每个元素吗?或者,我是否以错误的方式处理这个问题?