我正在开发基于backbone
的SPA应用,最近我遇到了一个问题。
假设共有2页:第一页是type
页面,用户可以选择填写一种不同的表格,第二页是用户的form
页面可以在此页面填写他们的信息。我使用backbone's router
将其设为SPA。
在form
页面中,如果用户想要更改表单类型,他/她可以点击previous
页面中的form
按钮返回{{1页面。但是在页面真的被跳之前,我想确保如果type
模型已被更改,我会提醒用户提醒用户在跳转到info
页面之前保存他们的信息。每次用户点击type
按钮时,我都会调用info
模型的hasChanged
方法。
现在,页面跳转到previous
页面,用户选择了其他类型,然后再次转到type
页面。
现在是时候,在用户填写任何信息之前,如果用户再次点击info
按钮,我的代码将检查模型的previous
方法。自从用户填充第一个类型的表单信息的第一步以来,模型的hasChanged
方法将始终返回true。那么每次加载第二页(hasChanged
页面)时,如何重置模型的更改标志(如果有的话)?
只需将模型的info
属性设置为空对象?我不认为这是正确的方法。谢谢你的帮助
答案 0 :(得分:1)
为什么单一模型用于两种不同的形式?如果它们包含相同的数据,为什么有两种不同我会说你必须为你的表单创建两种不同类型的模型。如果你仍然认为共享相同的东西,那么创建两个模型实例并将它们与表单相关联。
我认为没有干净的方法可以使用相同的模型实例。