我有一个来自服务器的视图模型像json这样
{
Project: {
Items: {
ItemA: {
Tags: [
...
]
},
ItemB: ...
}
}
}
然后我将这个对象与knockout.mapping插件绑定,但我需要ItemA,例如,有一个额外的Marked observable,这样我在标记中可以做类似的事情
<ul data-bind="foreach: Project.Items">
...
<input type="checkbox" data-bind="checked: Marked">
我尝试在映射过程中使用create
选项(如此处ko.mapping create function, extend object所示),但我无法弄清楚如何嵌套create
方法来扩展对象Project.Items。
我一直在尝试像这样的映射
var mappings = {
'Items': {
create: function (options) {
return $.map(options.data, function(obj) {
return new Item(obj);
});
}
}
}
答案 0 :(得分:2)
解决方案是这种绑定
var mappings = {
'Items': {
create: function (options) {
return new Item(options.data);
}
}
};