一尘不染

如何检测用户是否单击了Angularjs中的浏览器后退按钮

angularjs

我有一个带有一些数据的类似表单的页面。并希望在用户单击浏览器后退按钮时显示弹出窗口/警告,询问“他们是否要返回或停留在同一页面上”。我正在使用angular-
ui-router,$stateProvider并且只想将此绑定到一个状态/视图。


阅读 208

收藏
2020-07-04

共1个答案

一尘不染

这是我之前对其他问题的回答,但对您有所帮助

您可以通过使用角度来做到这一点 $routeChangeStart

$ routeChangeStart

在更改路线之前广播。此时,路由服务开始解决发生路由更改所需的所有依赖关系。通常,这涉及获取视图模板以及在resolve
route属性中定义的所有依赖项。解决所有依赖关系后,将触发$ routeChangeSuccess。

$location可以通过调用preventDefault事件的方法来防止路由更改(及其触发更改)。$rootScope.Scope有关事件对象的更多详细信息,请参见。


因此,请尝试以下代码。

  $scope.$on('$routeChangeStart', function (scope, next, current) {
        if (next.$$route.controller != "Your Controller Name") {
            // Show here for your model, and do what you need**
            $("#yourModel").show();
        }
    });

更新:

您需要在模型弹出窗口中编写功能性工作。喜欢

放置一些链接按钮

  • 您确定要转到上一页吗?
  • 您要停留在当前页面吗?
  • 您要登出吗?等等

然后为进入上一页添加ng-click事件,使用return false等等保持当前页面。

有感觉的家伙吗?

2020-07-04