javascript - 有没有手动设置backbone模型不变的接口(interface)?

标签 javascript backbone.js model

我正在开发一个基于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/

相关文章:

javascript - JavaScript 上的简单模板引擎

javascript - 列出 Google map 屏幕上的标记

javascript - Backbone.js Once()事件方法: counter increment example

python - 由属性确定的唯一数据库条目

Javascript:使用 `.includes` 查找对象数组是否包含特定对象

javascript - 在 backbone.js 项目中导入和使用 javascript 库

javascript - Backbone 中的 FileReader 范围问题

templates - AngularJS - 在自定义指令中渲染模板之前格式化 ng-model

java - 在 OO 模型中添加双向关系的最佳实践

javascript - 如何在firebase中获取Keys?