javascript - 如何在用户离开而不保存更改时显示警告消息

标签 javascript angularjs-directive

我编写了一个指令来监视 $locationChangeStart 事件,并在表单有未保存的更改时向用户显示一条消息。问题是事件处理程序永远不会被触发。这是我在 notify-on-location-change.js

中的代码的简化版本
    (function() {
    'use strict';


    angular.module('myApp.directives').directive('notifyOnLocationChange', ['$scope', 'event', 'next', 'current', function ($scope, event, next, current) {

        $scope.$on('$locationChangeStart', function () {                
            if (true) {
                alert('Unsaved data!');
            }                

        });

        $scope.$on('$stateChangeStart', function () {                
            if (true) {
                alert('Unsaved data!');
            }                

        });


    }]);

})();

然后我标记我想要触发警告的表单:

 <form name="detailsForm" ng-submit="$ctrl.onSubmit()" novalidate notifyOnLocationChange>

notify-on-location-change.js 包含在 index.html 中

我在这里错过了什么?

最佳答案

将表单属性更改为notify-on-location-change

参见 https://stackoverflow.com/a/19503227/584846了解更多详情

关于javascript - 如何在用户离开而不保存更改时显示警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44295356/

相关文章:

javascript - 将 jquery 与 OO Javascript 一起使用

javascript - EXTJS - 图表刷新、重绘 - 如何更新图表

javascript - 使用光线追踪将 3D 场景转换为 2D 图像(webgl、 Three.js)

javascript - get(id) 带回 id 和 null,为什么?

javascript - 数据表的自定义分页

angularjs - Angular - Pikaday : change date in pickaday element

javascript - 如何使用 Angular 表达式值作为 html 元素的属性

javascript - Angularjs 指令隔离范围 + 单向数据绑定(bind)不适用于对象?

angularjs - tokenInput 作为 angular.js 指令

javascript - AngularJS - 使用指令显示图像