У меня есть объект JSON, например:
{
id:"a",
type:"simple",
children:[
{
id:"a.1",
type:"simple",
children:[
{
id:"a.1.1",
type:"simple",
},
{
id:"a.1.2",
type:"simple",
}
]
},
{
id:"a.2",
type:"simple",
},
{
id:"a.2",
type:"simple",
}
]
}
Я пытаюсь использовать плагин сопоставления нокаута, чтобы создать пользовательское выбранное свойство для всех дочерних объектов, например:
{
id:"a",
type:"simple",
children:[
{
id:"a.1",
type:"simple",
selected:true,
children:[
{
id:"a.1.1",
type:"simple",
selected:true
},
{
id:"a.1.2",
type:"simple",
selected:true
}
]
},
{
id:"a.2",
type:"simple",
selected:true
},
{
id:"a.2",
type:"simple",
selected:true
}
]
}
Мой код выглядит так на данный момент:
getMapping : function() {
var childModle = function(data) {
data.selected = false;
ko.mapping.fromJS(data, {}, this);
};
var mapping = {
"children" : {
create : function(options) {
return new childModle(options.data);
}
}
};
return mapping;
},
var mapping = this.getMapping();
var mappedModel = ko.mapping.fromJS(model, mapping);
Это работает только для детей верхнего уровня. Дети 2-го уровня не создаются с использованием моего отображения.
* Моя модель может иметь бесконечное количество вложенных уровней *
Мой вопрос: как я могу заставить детей создавать приложения для всех вложенных детей?
ko.mapping.fromJS
, который вы делаете внутри конструктораchildModle
. - person RP Niemeyer   schedule 14.12.2012