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

时间:2017-05-31 22:02:02

标签: 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

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

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

有关详细信息,请参阅https://stackoverflow.com/a/19503227/584846