angular ng-click防止重复提交实例


Posted in Javascript onJune 16, 2017

方法一:点击后,让button的状态变为disable

js指令:

.directive('clickAndDisable', function() {
    return {
      scope: {
        clickAndDisable: '&'
      },
      link: function(scope, iElement, iAttrs) {
        iElement.bind('click', function() {
          iElement.prop('disabled',true);
          scope.clickAndDisable().finally(function() {
            iElement.prop('disabled',false);
          })
        });
      }
    };
  })

html:

<button type="button" class="btn btn-info btn-bordered waves-effect w-md waves-light" click-and-disable="next()">下一步</button>   //把 ng-click 改为指令click-and-disable

方法二:在app.config里面,重写ng-click事件,设置一定事件内不能重复点击

$provide.decorator('ngClickDirective',['$delegate','$timeout', function ($delegate,$timeout) { //记得在config里注入$provide
      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;
    }]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于juqery radio写法的兼容性问题(新老版本jquery)
Jun 14 Javascript
javascript中的float运算精度实例分析
Aug 21 Javascript
js中字符替换函数String.replace()使用技巧
Aug 14 Javascript
非html5实现js版弹球游戏示例代码
Sep 22 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
Aug 24 Javascript
jquery实现的Accordion折叠面板效果代码
Sep 02 Javascript
Jquery Mobile 自定义按钮图标
Nov 18 Javascript
Javascript中Promise的四种常用方法总结
Jul 14 Javascript
微信小程序中setInterval的使用方法
Sep 29 Javascript
JS中实现一个下载进度条及播放进度条的代码
Jun 10 Javascript
Vue 实现可视化拖拽页面编辑器
Feb 01 Vue.js
vue修饰符.capture和.self的区别
Apr 22 Vue.js
vue.js实现数据动态响应 Vue.set的简单应用
Jun 15 #Javascript
vue实现全选、反选功能
Nov 17 #Javascript
vue中将网页打印成pdf实例代码
Jun 15 #Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
Jun 15 #Javascript
Angularjs为ng-click事件传递参数
Jun 15 #Javascript
详解原生js实现offset方法
Jun 15 #Javascript
微信小程序 监听手势滑动切换页面实例详解
Jun 15 #Javascript
You might like
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
PHP 强制下载文件代码
2010/10/24 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php设计模式 Template (模板模式)
2011/06/26 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
javascript中的作用域scope介绍
2010/12/28 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
详解angularJs中自定义directive的数据交互
2017/01/13 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
python tkinter实现连连看游戏
2020/11/16 Python
CSS3 animation实现简易幻灯片轮播特效
2016/09/27 HTML / CSS
维珍澳洲航空官网:Virgin Australia
2017/09/08 全球购物
中国跨镜手机配件批发在线商店:TVC-Mall
2019/08/20 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
五好党支部事迹材料
2014/02/06 职场文书
工程项目经理任命书
2014/06/05 职场文书
2014年财政工作总结
2014/12/10 职场文书
服务承诺书
2015/01/19 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL
mysql幻读详解实例以及解决办法
2022/06/16 MySQL