防止angularjs中的多次单击

Ami*_*din 3 html angularjs

当我想从我的页面删除记录时,我需要在删除之前显示确认消息.为此,我使用了锚并ng-click='delete()'删除了这样的行.在这里,用户可以多次点击锚点.这是一个严重的问题,因为确认弹出窗口会多次呈现.我的例子是一个样本.在我的项目中,我遇到了太多这样的问题.我想阻止多次点击扩展ng-click.

Ami*_*din 8

如果我们覆盖ngClick指令,那么我们可以保护多次点击.

app.config(['$provide', function ($provide) {
        $provide.decorator('ngClickDirective',['$delegate','$timeout', function ($delegate,$timeout) {
            var original = $delegate[0].compile;
                  var delay = 500;
            $delegate[0].compile = function (element, attrs, transclude) {

                var disabled = false;
                function onClick(evt) {
                    if (disabled) {
                        evt.preventDefault();
                        evt.stopImmediatePropagation();
                    } else {
                        disabled = true;
                        $timeout(function () { disabled = false; }, delay, false);
                    }
                }
                //   scope.$on('$destroy', function () { iElement.off('click', onClick); });
                element.on('click', onClick);

                return original(element, attrs, transclude);
            };
            return $delegate;
        }]);
    }]);
Run Code Online (Sandbox Code Playgroud)