我正在尝试使用ko.mapping插件创建函数将计算的observable添加到分层视图模型中。但该功能仅适用于顶级'儿童'阵列! 代码如下:
Children:[{
Name: "Page 1",
Children: [ {
Name: "Page 1 > 1",
Children: [{
Name: "Page 1 > 1 > 1",
Children: []
}
,{
Name: "Page 1 > 1 > 2",
Children: []
}
]
}
]
},
{
Name: "Page 2",
Children: [
{
Name: "Page 16",
Children: []
}
]
},
{
Name: "Page 3",
Children: [
{
Name: "aaaaa",
Children: []
}
]
我的功能如下
var computed = function (data) {
var self = this;
ko.mapping.fromJS(data, {}, self);
self.Uri = ko.computed(function () {
console.log(self.Name());
return self.Name() + " Something";
});
};
var mapping = {
'Children': {
create: function (o) {
return new computed(o.data);
}
}
};
ko.mapping.fromJS(data, mapping, vm);
有没有办法让'computed'函数在所有'children'数组上运行? 感谢。
答案 0 :(得分:0)
您也应该为儿童提供映射选项。尝试更新computed
功能,如下所示:
var computed = function (data) {
var self = this;
ko.mapping.fromJS(data, mapping, self);
self.Uri = ko.computed(function () {
console.log(self.Name());
return self.Name() + " Something";
});
};