Javascript 取消时从ajax恢复到第一次加载值
基本上,我有一个使用span的显示视图和使用同一页面中的输入的编辑视图,其中用户一次只能看到显示或编辑视图 显示视图->编辑按钮 编辑视图->保存按钮/取消按钮 当用户单击cancel按钮时,页面将从edit视图更改为display视图,其中包含从ajax调用加载的数据 我的问题是: 如何保留第一个加载的ajax调用值,并在单击cancel按钮时将其检索回来 条件: 1不要再次调用ajax来获取值 2解决方案应该是通用的,并且足够好,可以在大多数类似情况下重复使用 我相信这是许多开发者面临的一个常见问题 函数MyViewModel{ var self=这个; self.FirstName=ko.observable; self.LastName=ko.observable; self.SelectedCountryID=ko.observable; self.GetInformation=函数{ $.ajax{ //获取数据并绑定 }; } self.GetCountryInformation=函数{ $.ajax{ //获取国家/地区数据并绑定到选择选项 }; } self.SaveInformation=函数{ $.ajax{ //发布数据 }; } self.OnCancelClick=函数{ //取消并恢复到首次加载值。 } 自我信息; 自我信息; }Javascript 取消时从ajax恢复到第一次加载值,javascript,jquery,ajax,knockout.js,Javascript,Jquery,Ajax,Knockout.js,基本上,我有一个使用span的显示视图和使用同一页面中的输入的编辑视图,其中用户一次只能看到显示或编辑视图 显示视图->编辑按钮 编辑视图->保存按钮/取消按钮 当用户单击cancel按钮时,页面将从edit视图更改为display视图,其中包含从ajax调用加载的数据 我的问题是: 如何保留第一个加载的ajax调用值,并在单击cancel按钮时将其检索回来 条件: 1不要再次调用ajax来获取值 2解决方案应该是通用的,并且足够好,可以在大多数类似情况下重复使用 我相信这是许多开发者面临的一个
有两个独立的观测值。保存时,将编辑可观察对象复制到保存的可观察对象。取消时,您不需要 var vm=函数{ var self={ 模式:ko.可观察的“显示”, 保存值:ko.observable, newValue:ko.observable, 保存:函数数据{ console.debugSave,data,self.newValue; self.savedValue self.newValue; 自我模式“显示”; } }; 回归自我; } ko.applyBindingsvm; 编辑 拯救 取消
@CrimsonChris将对此进行研究这似乎是一个优雅的解决方案。我想试试这个。你能证明在这里使用自调用函数的合理性吗。除此之外,在本例中.bind的第一个参数是什么?你指的是jquery绑定吗?这是常规的JS绑定。用于设置函数的上下文。我正在使用bind to curry模式的set函数。如果愿意,可以在viewmodel中提供单独的功能,以将模式设置为编辑和显示。