【发布时间】:2014-02-24 23:22:00
【问题描述】:
考虑这个 JSON 对象:
{
"BusinessModels":[
{
"Id":1,
"Name":"Business to Business",
"Businesses":[],
"ReportTypes":[
{...},
{...},
{
"Id":6,
"Name":"Risk",
"BusinessModelId":1,
"Reports":[
{
"Id": 4,
"Name": "Test",
"Value": ko.observable() // NEED TO ADD THIS PROPERTY USING MAPPING
},
{...}
]
}
],
}
]
}
我正在尝试使用以下代码添加值,但它似乎不起作用。
var mapping = {
'BusinessModels': {
create: function(options) {
return new function() {
var self = options.data;
self.SelectedBusiness = ko.observable();
self.Businesses.unshift({ Id: 0, Name: 'All Clients' });
ko.mapping.fromJS(self, {}, this);
};
}
},
'Reports': {
create: function (options) {
return new function () {
var self = options.data;
self.Value = ko.observable();
ko.mapping.fromJS(options.data, {}, this);
};
}
}
};
var model = ko.mapping.fromJSON(raw, mapping);
ko.applyBindings(model);
我需要给一个子对象“报告”一个名为 Value 的 ko.observable 对象。如何在 ko.mapping 中执行此操作?
【问题讨论】:
-
我不太确定你在问什么。如果您要使用您想要的结构手动构建它,您可以发布一个“之后”对象吗?
-
我更新了我的评论。我只需要为孩子添加一个属性,但我的映射不起作用。
标签: javascript json knockout.js knockout-mapping-plugin