我正在尝试使用几种服务来在angularjs中的多部分表单元素之间共享数据。一个示例是一个服务,它维护一组访问状态,当用户单击提供的后退按钮时,弹出最后一个状态,并重定向页面以及所有相关字段。
但是,如果用户在浏览器上使用后退按钮,那么我的服务仍然认为它是在以下步骤中。例如。我在B上,我点击了浏览器并且模板加载了页面A.但是我当前的步骤是服务中的B,我的下一步是C,这会导致各种各样的问题。
我想支持后退/前进,但同时处理这些问题。有什么建议吗?
答案 0 :(得分:0)
最终我想出了如何使用ui-router和$ stateParams而不是数组来实现这一目标。
我使用run函数监听状态更改使用$ rootScope。$ on(' stateChangeStart')如果toState名称是我的动态状态,那么我测试from和to步骤,看看他们是否根据我在服务中的路由表有效。如果由于某种原因这些步骤无效,那么我清除数据并重定向到表单的第一步。
这部分是处理刷新,以便测试此检查是否fromState.url =" ^"并设置rootScope变量。如果你的变量不存在而且fromstate是" ^"然后你应该重定向。这可以防止刷新破坏实现以及无限刷新循环