我正在开发一个基于backbone
的SPA应用程序,最近遇到了一个问题。
假设有 2 个页面:第一个页面是 type
页面,用户可以选择一种类型的不同表单来填写,第二个页面是 form
页面code> 页面,用户可以在此页面填写自己的信息。我使用了backbone 的路由器
来使其成为一个SPA。
在form
页面中,如果用户想要更改表单类型,可以点击form
中的previous
按钮页面返回到type
页面。但在页面真正跳转之前,我想确保如果 info
模型已更改,我会提醒面板提醒用户在跳转到 type< 之前保存其信息
页面。因此,每次用户单击 previous
按钮时,我都会调用 info
模型的 hasChanged
方法。
现在,页面跳转到type
页面,用户选择了另一种类型,然后再次进入info
页面。
现在是时候了,在用户填写任何信息之前,如果用户再次单击 previous
按钮,我的代码将检查模型的 hasChanged
方法。自从用户填写第一种类型的表单信息的第一步以来,模型的 hasChanged
方法将始终向我返回 true。那么每次加载第二页(info
页面)时如何重置模型的更改标志(如果有)?
只是将模型的 changed
属性设置为空对象?我认为这不是正确的方法。感谢您的帮助
最佳答案
为什么单一模型用于两种不同的形式?如果它们包含相同的数据为什么有两种不同的形式?我想说你必须为你的表单创建两种不同类型的模型。如果你仍然认为共享相同的东西,那么创建两个模型实例并将它们与表单关联起来。
我认为没有干净的方法可以使用相同的模型实例。
关于javascript - 有没有手动设置backbone模型不变的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314818/