【发布时间】:2013-03-22 12:43:52
【问题描述】:
我的情况是,我有 2 个选项卡,每个选项卡都有一个部分视图,我使用 jquery UI 来创建我的选项卡。
我为每个用户提供两个选项 1. 保存,2. 提交。
保存时它将为该特定选项卡(该选项卡包含模型视图 1)保存第二个相同的选项卡(该选项卡包含模型视图 2)
如何一键从两个选项卡提交两个模型?
我的选项卡 1 和选项卡 2 保存中有类似的内容。
我的第一个视图模型。
self.save = function() {
$.ajax({
url: "MyTabs",
data: { data: ko.toJSON(self.firstVM) },
type: "post",
contentType: "application/json",
success: function(result) { alert(result); }
});
};
我的第二个视图模型。
self.save = function() {
$.ajax({
url: "MyTabs",
data: { data: ko.toJSON(self.secondVM) },
type: "post",
contentType: "application/json",
success: function(result) { alert(result); }
});
};
【问题讨论】:
-
您希望他们提交到单个 URL 吗?还是可以单独提交?我的意思是,您是否必须进行相同的 ajax 调用,还是会转到一个完全不同的 url,它采用不同的对象?
-
Sujesh,是同一个网址……
-
对此有不同的方法。 1. 你需要一个包含两个孩子的 parentViewModel。然后提交将在可以从孩子那里获取值的父母中。另一种方法(更解耦的方法)是使用 pub/sub。您创建一个视图模型来进行提交。点击提交按钮时会调用viewmodel提交数据。提交函数发出一个调用,向它发送所有数据并订阅将由两个子视图模型发布的事件。你可以使用放大js来做pub/sub
标签: knockout.js knockout-mapping-plugin knockout-2.0 knockout-validation knockout-mvc