Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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 Backbonejs:如何跟踪arn&x27;是否没有同步到服务器?_Javascript_Javascript Events_Backbone.js_Model Binding - Fatal编程技术网

Javascript Backbonejs:如何跟踪arn&x27;是否没有同步到服务器?

Javascript Backbonejs:如何跟踪arn&x27;是否没有同步到服务器?,javascript,javascript-events,backbone.js,model-binding,Javascript,Javascript Events,Backbone.js,Model Binding,我有一个表单,它使用执行大量set方法的更改事件更新我的模型 model.set({Name: newname }); 德里克·贝利(Derick Bailey)的精彩表演也可以自动实现这一点 无论如何,在更改表单时,模型会不断更新。但是,除非我单击实际执行model.save()的save按钮调用,所有这些更改都不会进入数据库 因此,如果我现在通过以下方式离开表单: 从浏览器返回按钮 导航中的其他按钮打开另一个视图 很明显,模型是用新名称保存的,但从未保存到数据库中(用F5刷新显示) 我

我有一个表单,它使用执行大量
set
方法的更改事件更新我的模型

model.set({Name: newname });
德里克·贝利(Derick Bailey)的精彩表演也可以自动实现这一点

无论如何,在更改表单时,模型会不断更新。但是,除非我单击实际执行
model.save()的save按钮调用,所有这些更改都不会进入数据库

因此,如果我现在通过以下方式离开表单:

  • 从浏览器返回按钮
  • 导航中的其他按钮打开另一个视图
很明显,模型是用新名称保存的,但从未保存到数据库中(用F5刷新显示)

我正在寻找解决这个问题的有效方法 到目前为止,我一直在想:

  • 在表单元素的任何模糊事件上添加
    model.save()
    (仍然会导致仅为1个模型向服务器调用许多保存调用*不理想
  • 试图在表单退出时进行保存*不理想
  • 尝试将模型恢复到其原始状态(模型重置或类似)
*不理想:用户确实离开了表单,表明他不想保存表单的数据,而这里我正试图破解一个保存


如何将模型重置为更改表单之前的状态。

如果需要,可以保存模型的初始状态。但真正的解决方案是调用而不是
save
。它将在不同步到持久层(即数据库)的情况下执行验证。它还将触发
更改
事件,以便您的视图能够做出相应的反应。然后,当您准备好保存时,您可以。

如果您愿意,您可以保存模型的初始状态。但您正在寻找的真正解决方案是调用而不是
保存
。它将执行验证,而不同步到您的持久性ayer(即数据库)。它还将触发
change
事件,以便您的视图能够做出相应的反应。然后,当您准备好保存时,您可以。

我重新表述了我的问题,因为您似乎误解了我的意思。当用户决定不保存模型时,我想在模型更新为model.set()后重置模型在用户与表单交互的过程中进行了多次。这并没有太多意义。不将其保存在任何位置都会导致它被“重置”实际上,由于下一次访问该页面时,它将具有它最初所具有的任何属性。请确保它是有意义的,您不一定要移动到另一个“页面”,它可能是一个web应用程序,只要您不使用该应用程序(无页面刷新)你一直在使用同一组模型/集合。直到它们被脚本更新或重置。这就是我试图找到的,在哪里重置模型。很抱歉延迟回复。我对你的问题和你的评论感到困惑。你想(a)在编辑表单时保存模型(到数据库),然后(b) 将模型(在数据库中)重置为用户开始编辑表单之前的状态?不,这是您弄错的地方,我正在将表单更改保存到模型中(通过modelbinding插件),因此当您键入新的“名称”时,例如,模型的name属性会不断更新以反映表单更改(model.set)({'name':'newname'});)。但是,只有在model.save();…由于某种原因没有执行model.save();时,当用户在应用程序中导航时,该模型才更新了数据库中没有的值。希望您现在理解:)我重新表述了我的问题,因为您似乎误解了我的意思。我想重置一个模型,当用户决定不保存它时,在用户与表单交互的过程中使用model.set()多次更新该模型。这真的没有太多意义。不将其保存在任何位置都会导致它被“重置”实际上,由于下一次访问该页面时,它将具有它最初所具有的任何属性。请确保它是有意义的,您不一定要移动到另一个“页面”,它可能是一个web应用程序,只要您不使用该应用程序(无页面刷新)你一直在使用同一组模型/集合。直到它们被脚本更新或重置。这就是我试图找到的,在哪里重置模型。很抱歉延迟回复。我对你的问题和你的评论感到困惑。你想(a)在编辑表单时保存模型(到数据库),然后(b) 将模型(在数据库中)重置为用户开始编辑表单之前的状态?不,这是您弄错的地方,我正在将表单更改保存到模型中(通过modelbinding插件),因此当您键入新的“名称”时,例如,模型的name属性会不断更新以反映表单更改(model.set)({'name':'newname'});)。但是,只有在model.save();…由于某种原因没有执行model.save();时,当用户在应用程序中导航时,该模型才更新了数据库中没有的值。希望您现在理解:)