在ajax獲取請求期間,我們可以使用ko.mapping.fromJS從服務器獲取數據並進行自動映射。另外,我們可以使用ko.mapping.toJS在挖掘中發佈或放置ajax數據到服務器。ajax數據自動映射在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());
您是否建議您展示的方法不是一種明智的方式? – stackdisplay
@stackdisplay至於方法走的路(簡單)。爲了發佈所需的數據(通過ajax POST),構建視圖模型以適應這些條款並不是那麼明智(只是意見強硬,它完全適用於您的場景)。 –