根据这篇文章,我正在尝试在淘汰赛中创建一个对象内部属性。可以像这样自定义对象:
var data = {
name: 'Graham',
children: [
{ id : 1, name : 'Lisa' }
]
}
然后为它创建一个地图:
var mapping = {
'children': {
create: function(options) {
return new myChildModel(options.data);
}
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
使用您要添加为 new myChildModel() 的自定义字段,如下所示:
var myChildModel = function(data) {
ko.mapping.fromJS(data, {}, this);
this.nameLength = ko.computed(function() {
return this.name().length;
}, this);
}
但是,如果我要自定义的数据位于对象内部属性中怎么办?
var data = {
name: 'Graham',
family :{
parents: [
{ id : 1, name : 'Duke' }
],
children: [
{ id : 1, name : 'Lisa' }
]
}
}
在这里,我想自定义家庭对象内部的孩子数组,这也是内部数据对象。
这是我尝试过的:
var mapping = {
'family.children': {
create: function(options) {
return new myChildModel(options.data);
}
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
并且:
var mapping = {
'family[children]': {
create: function(options) {
return new myChildModel(options.data);
}
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
但没有一个工作,有没有办法可以实现?