Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 取消时从ajax恢复到第一次加载值_Javascript_Jquery_Ajax_Knockout.js - Fatal编程技术网

Javascript 取消时从ajax恢复到第一次加载值

Javascript 取消时从ajax恢复到第一次加载值,javascript,jquery,ajax,knockout.js,Javascript,Jquery,Ajax,Knockout.js,基本上,我有一个使用span的显示视图和使用同一页面中的输入的编辑视图,其中用户一次只能看到显示或编辑视图 显示视图->编辑按钮 编辑视图->保存按钮/取消按钮 当用户单击cancel按钮时,页面将从edit视图更改为display视图,其中包含从ajax调用加载的数据 我的问题是: 如何保留第一个加载的ajax调用值,并在单击cancel按钮时将其检索回来 条件: 1不要再次调用ajax来获取值 2解决方案应该是通用的,并且足够好,可以在大多数类似情况下重复使用 我相信这是许多开发者面临的一个

基本上,我有一个使用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=函数{ //取消并恢复到首次加载值。 } 自我信息; 自我信息; }
有两个独立的观测值。保存时,将编辑可观察对象复制到保存的可观察对象。取消时,您不需要

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中提供单独的功能,以将模式设置为编辑和显示。