5

我尝试在我的控制器中执行以下操作:

  $scope.$on("$routeChangeStart", function (event, next, current) {
       if (!confirm('are you sure ?')) {
         event.preventDefault();           
       }
  });

但它不起作用。这不应该是这样做的方式吗?

4

2 回答 2

0

我会在你的链接上放一个指令,在改变路线之前应该确认。我只是在 JSFiddle 中对其进行了原型设计,我没有对其进行测试。但我认为,这应该是正确的方法。

(function (angular) {
  module = angular.module('confirm', []);
  ConfirmDirective = function () {
      return {
        restrict: 'A',
        link: function (scope, elm, attrs, ctrls) {
            angular.element(elm).bind('click', function (event) {
                alert("Sure?");
                event.preventDefault();
                return false; //or true, depends on you
            });
        }
    };
  };
  module.directive("confirm", ConfirmDirective);
}(angular));

http://jsfiddle.net/L6xBF/3/

检查并尝试。

问候

于 2013-04-25T11:17:14.470 回答
0

我最终使用了ui-router,所以我这样做的方式是:

$scope.$on('$stateChangeStart', function (event) {
     if (!confirm('are you sure ?')) {
         event.preventDefault();
     }
});

它有效。

于 2013-10-14T18:31:21.543 回答