html - 防止angularjs中的多次点击

标签 html angularjs

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

最佳答案

如果我们覆盖 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;
        }]);
    }]);

关于html - 防止angularjs中的多次点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30137584/

相关文章:

javascript - 无法访问 Controller 上 ngRepeat 的过滤结果

html - 背景大小 : cover causing background image to partially be hidden

javascript - 我应该使用什么语言来构建小型 Costing 应用程序?

html - CSS Top 不适用于链接

javascript - 如何使用 webrtc 在 html5 页面中查看直播文件

javascript - 使用数组解构从 Angular $injector 读取多个值

ruby-on-rails - Rails 应用程序的部分是 SPA (AngularJS) 或多个 SPA

javascript - Angular : Set size of input tag based on content length

html - CSS 完全用颜色填充 div

javascript 函数中 HTML 表单标记内的 Javascript