我有一个从服务器获取的reocrds列表,并由ko.mapping.fromJS转换为knockout observableArray。
self.items = ko.observableArray([]);
$.getJSON('/api/getdata', function(data) {
var mappedTasks = $.map(dataFromServer, function(cls) {
return ko.mapping.fromJS(cls);
});
self.items(mappedTasks);
}
在某些情况下,我希望将某些属性设置为null并绑定到UI。稍后用户操作我想恢复旧的现有数据而不是null。有没有办法将属性oldValue附加到observable,以便我可以保留旧值并在必要时将其设置回来。敲除扩展可用于保存数据吗?对此的任何帮助都非常感谢,
乔治
答案 0 :(得分:0)
当您将数据从服务器映射到具有knockout observables的对象时,您还可以在同一对象上定义其他observable。
self.items = ko.observableArray([]);
$.getJSON('/api/getdata', function(data) {
var mappedTasks = $.map(dataFromServer, function(cls) {
var item = ko.mapping.fromJS(cls);
item.AdditionalValue1 = ko.observable(0);
item.AdditionalValue2 = ko.observable('test');
return item;
});
self.items(mappedTasks);
}
如果您想要更改绑定对象的方式,可能更容易构建从服务器端数据到客户端视图模型的映射。