0

我正在做一个唯一带有骨干的前端项目。在某一时刻,我想做以下事情:

  • 带有一些输入的基本表单
  • 用户提交表单
  • 根据用户的输入,使用 d3 或 google graph 显示一些很酷的图。

问题是我没有任何后端,所以我从不保存用户的输入,如何更改视图并仍然拥有表单的数据?

我正在考虑将它临时存储到本地存储中,但这对于性能来说并不是一个很好的解决方案......

谢谢

4

2 回答 2

1
  1. 路由器创建模型实例
  2. 路由器将该模型实例传递给表单视图构造函数选项
  3. 路由器绑定事件监听器view.on('formComplete', this.storeModel)
  4. 路由器渲染和附加表单视图
  5. 用户填写表单视图
  6. 表单视图将表单中的数据设置到模型中
  7. 表单视图触发路由或事件(如this.emit('formComplete', this.model);
  8. 路由器的storeModel处理函数采用相同的模型实例,将其this.model临时存储在路由器上,然后导航到图形视图。
  9. 在图视图路由处理程序方法中,路由器将this.model其传递给图视图构造器选项、渲染、附加

这有点像将您的路由器用作内存数据缓存,但由于您没有后端,您需要将数据存储在某个地方。

于 2013-07-10T17:39:23.667 回答
0

我也在做一个带有骨干网的单视图网络应用程序。

我认为您的问题的重点是您实际上只有一个页面,但将不同的视图加载到此页面中。不切换到另一个页面。

我想您的应用网址是http://xxx.xxx.xxx/#first_view。并使用骨干路由器更改视图

  • 如果您只想保留数据直到用户刷新浏览器。只需将它们保存到全局 js 变量中即可。一旦你使用类似的东西

window.location = Global.getBaseURL() + "#second_view" 来改变你的视图。你实际上是通过 ajax 加载“second_view”并将 html 放入当前页面。你永远不会丢失你的 js 变量。

  • 如果您想保持数据甚至用户刷新或转到另一个页面。你必须使用 sessionStorage。完成加载新页面后,将数据保存为 JSON 格式并将其转换回 js 变量。
于 2013-07-11T00:09:13.347 回答