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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (175)

我有一个带有一些数据的表单页面。并且想要在用户点击浏览器后退按钮时显示弹出/提醒,询问“if they want to go back or stay on the same page”。我正在使用angular-ui-router,$stateProvider并且只想将它绑定到一个状态/视图。

提问于
用户回答回答于

你可以通过使用angular $routeChangeStart 来做到这一点

$ routeChangeStart

尝试下面的代码:

  $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();
        }
    });

用户回答回答于

使用带angular ui router的$ stateChangeStart

例如:

你有4个状态,每个状态都有2个子状态,每个子状态或状态都不与一个url关联。在这种情况下,监听$ routeChangeStart可能不起作用。

在你想要提示用户确认重定向的控制器/视图中,执行此操作。

当你的当前作用域(你所在的视图/控制器)发生状态变化时,这将被调用。

$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
    //Open the modal
    $('my-modal').show();
});

扫码关注云+社区

领取腾讯云代金券