从我的服务器我收到一个对象,它看起来是这样的:使用挖空映射,我该如何映射整个数组属性?
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);
Here's a fiddle showing the behaviour
这里是真正问题:使用create
回调,我可以访问整个阵列,而不是每个元素,一次?或者,我是否以错误的方式处理了这个问题?
你为什么希望他们分成两列? – 2013-02-22 14:56:31
@PaulManzotti这显然不是真正的问题。我实际上得到了一个月中所有日子的数组,每天都附加一些数据,我需要将该数组分成7天的子数组,以便我可以使用模板呈现日历,一次一个星期。 – 2013-02-22 15:07:11