【发布时间】:2015-10-10 03:05:07
【问题描述】:
在 ajax 获取请求期间,我们可以使用 ko.mapping.fromJS 从服务器获取数据并进行自动映射。另外,我们可以使用 ko.mapping.toJS 将 ajax 数据发布或放入服务器中。
但是,假设 ko.mapping.toJS 中的每个值都将在 ajax 调用中传回。我们可以使用 delete 或 ignore 来删除不应传回服务器的属性。
最近,我遇到了以下问题。如果不显式分配或忽略数据,我怎么能传递我想要的数据,因为它太麻烦了。我认为重组视图模型可能会完成这项工作,但不知道如何开始。
function MyViewModel() {
var self = this;
// these data should not be pass in ajax call
self.data1 = ko.observable();
self.data2 = ko.observable();
self.data3 = ko.observable();
...
self.data50 = ko.observable();
// these data should not be pass in ajax call
self.noData1 = ko.observable();
...
self.noData10 = ko.observable();
// these should not be pass in ajax call
self.function1 = function() { }
self.function2 = function() { }
self.function3 = function() {
$.ajax({
..
type: 'POST',
data: { ko.mapping.toJS(self) },
success: {}
}
...
self.function50 = function() {}
};
ko.applyBindings(new MyViewModel());
【问题讨论】:
标签: javascript jquery ajax knockout.js