我正在尝试创建一个带有表单的网页,一旦用户更改任何字段,验证和更新立即提交,而不是让用户单击提交按钮。我正在使用 Knockout.js 和映射插件。我知道我可以通过为每个原始字段创建一个计算字段来实现这一点,但这种工作既乏味又愚蠢,是否有好的做法来创建一个通用监听器来监听任何字段中的任何变化并分别更新后端?
最佳答案
为了订阅任何更改,您可以使用 ko.toJS() 方法。实际上,它允许遍历对象图并打开可观察对象。正如您可能知道的那样,当您使用 ko.computed 时,它会订阅所有可观察字段的读取并重新评估每个更改。因此,如果您使用这样的代码:
ko.computed(function() {
ko.toJS(viewModel);
// update data on server
});
另外请注意,这段代码会在初始化后立即更新服务器上的数据。它可以很容易地避免。请检查此示例:http://jsfiddle.net/UAxXa/embedded/result/
此外,我认为您可能只想将更改后的数据发送到服务器。您可以合并 ko.editbales 插件 ( https://github.com/romanych/ko.editables ) 和一些 KO 底层知识。请检查此样本:http://jsfiddle.net/romanych/RKn5k/
希望对您有所帮助。
关于javascript - 使用 Knockoutjs 即时更新后端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9306637/