当前位置: 首页 > 面试题库 >

用户离开页面时在angularjs中显示警报

邹祺
2023-03-14
问题内容

我是angularjs新蜜蜂。我正在尝试编写一个验证,当用户尝试关闭浏览器窗口时会发出警告。

我的页面v1和v2上有2个链接。单击链接时,它指向特定页面。这是重定向到v1和v2的代码

angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives'])

.config(['$routeProvider', function($routeProvider) {
        $routeProvider.when('/v1', {templateUrl: 'pages/v_1.html', controller: MyCtrl1});
        $routeProvider.when('/v2', {templateUrl: 'pages/v_2.html', controller: MyCtrl2});
        $routeProvider.otherwise({redirectTo: '/v1'});
}]);

当用户单击v1时,我想弹出一条消息,“如果他希望继续,他将从v1离开”,而单击v2时也是如此。任何有关如何实现这一目标的指针将不胜感激。

我在这里得到了答案,但是在每个时间间隔后都会弹出该消息。

更新的代码;

控制器

function MyCtrl1() {
    $scope.$on('$locationChangeStart', function (event, next, current) {
        if ('your condition') {
            event.preventDefault();

            MessageService.showConfirmation(
                'Are you sure?',
            MessageService.MessageOptions.YES_NO, {
                'YES': function () {
                    blockNavigation = false;
                    $location.url($location.url(next).hash());
                    $rootScope.$apply();
                },
                'NO': function () {
                    MessageService.clear();
                    $log.log('NO Selected')
                }
            });
        }
    });
}
MyCtrl1.$inject = [];


function MyCtrl2() {}
MyCtrl2.$inject = [];

问题答案:

确认对话框的代码可以这样写:

$scope.$on('$locationChangeStart', function( event ) {
    var answer = confirm("Are you sure you want to leave this page?")
    if (!answer) {
        event.preventDefault();
    }
});


 类似资料:
  • 问题内容: 我正在使用Javascript命令:setInterval。我喜欢在用户离开页面时停止它。 该代码似乎运行良好:http : //jsfiddle.net/PQz5k/ 它检测用户何时离开页面。当用户单击链接以转到其他HTML页面或URL,或者用户重新加载页面时,它将执行Javascript代码。 但是,当我从一个AngularJS模板转到另一个模板时,它不起作用。例如,如果我在tem

  • 我想在用户离开angular 2应用程序的特定页面之前警告他们未保存的更改。通常我会使用<代码>窗口。onbeforeunload,但这不适用于单页应用程序。 我发现在角1中,您可以连接到事件以为用户抛出框,但我还没有看到任何内容说明如何让它在角2中工作,或者该事件是否仍然存在。我还看到了为提供功能的ag1插件,但同样,我还没有看到任何将其用于ag2的方法。 我希望其他人能找到解决这个问题的办法;

  • 问题内容: 我希望用户看到双大括号,但是Angular会自动将其绑定。这是与该问题相反的情况,即他们不希望在加载页面时看到用于绑定的花括号。 我希望用户看到以下内容: 但是Angular会替换为值。我认为这可能有效,但是angular仍然将其替换为值: plnkr:http://plnkr.co/edit/XBJjr6uR1rMAg3Ng7DiJ 问题答案: 文档@ ngNonBindable

  • 问题内容: 我希望我的ReactJS应用在离开特定页面时通知用户。特别是一条弹出消息,提醒他/她进行以下操作: “更改已保存,但尚未发布。现在执行吗?” 我应该在全局范围内触发此操作,还是可以在react页面/组件内完成此操作? 我还没有发现任何关于后者的信息,我宁愿避免使用第一个。除非当然是其规范,否则这使我想知道如何执行这样的事情而不必向用户可以访问的所有其他可能的页面添加代码。 欢迎有任何见

  • 问题内容: 在stackoverflow中,如果您开始进行更改,然后尝试离开该页面,则会显示一个javascript确认按钮并询问:“确定要离开该页面吗?” blee blah bloo … 之前有人实施过此功能,如何跟踪所做的更改?我相信自己可以做到,我正在尝试向您的专家学习良好做法。 我尝试了以下操作,但仍然无法正常工作: 有人可以举一个例子吗? 问题答案: 更新(2017) 现在,现代浏览器

  • 如何显示“您确定要离开页面吗?”当用户实际尝试关闭页面时(单击浏览器窗口或选项卡上的X按钮),而不是当用户尝试离开页面时(单击其他链接)。 我的客户希望在用户尝试关闭页面时显示一条消息:“您确定要离开页面吗?您的购物车中仍有商品。” 不幸的是不会仅在用户关闭页面时触发。 jQuery: