繁体   English   中英

AngularJS $定位服务和“返回”按钮

[英]AngularJS $location service and “Back” button

例如,当前URL是“ http:// localhost /#/ mail ”。 我做了一些动作,我想转到下一个网址:

$location.path("mail/inbox/3")

效果很好。 我在另一个具有另一个URL的控制器中。 但是,当我单击“后退”浏览器按钮时,希望返回到“邮件”路由,但我改为使用“邮件/收件箱”路由。 为什么? 我该如何解决? 因为对我来说这是不正确的。 谢谢。

当您解雇这个孩子时:

$location.path("mail/inbox/3")

请记住 ,它遍历了when('mail')when('mail/inbox')到达when('/mail/inbox/:number') 路由从mail -> inbox -> #3出发。 这就是为什么当您回击时它将转到mail/inbox

这是一个混乱的情况。 ng-routerui-router在简单的情况下会很好,但是随着应用程序的增长,像您这样的错误是不可避免的。

在我的项目中,我使用$locationProvider.html5Mode(false);禁用了html5Mode $locationProvider.html5Mode(false); ,实际上是禁用后退按钮。 并在应用程序内添加自定义后退按钮,以供用户向后导航。

该解决方案有助于:

  • 用户根本无法使用后退按钮,因此无法达到不想要的状态
  • 自定义后退按钮可以配置或隐藏。 事件代码根据当前应用程序状态在同一视图上执行不同的操作。
  • 对用户隐藏应用程序内部URL,以避免该应用程序被利用以获取用户不应看到的数据。

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM