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 相关文章推荐
不用写JS也能使用EXTJS视频演示
Dec 29 Javascript
jquery 插件开发 extjs中的extend用法小结
Jan 04 Javascript
js 控制下拉菜单刷新的方法
Mar 03 Javascript
详解Javascript继承的实现
Mar 25 Javascript
前端页面文件拖拽上传模块js代码示例
May 19 Javascript
Angular CLI 安装和使用教程
Sep 13 Javascript
vue2.0项目实现路由跳转的方法详解
Jun 21 Javascript
微信小程序实现判断是分享到群还是个人功能示例
May 03 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
Dec 18 Javascript
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
JS前端轻量fabric.js系列之画布初始化
Aug 05 Javascript
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
php中session与cookie的比较
2015/01/27 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
PHP+sqlite数据库操作示例(创建/打开/插入/检索)
2016/05/26 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
计算世界完全对称日的js代码,粗糙版
2011/11/04 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
[06:24]DOTA2亚洲邀请赛小组赛第三日 TOP10精彩集锦
2015/02/01 DOTA
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
Python 编码Basic Auth使用方法简单实例
2017/05/25 Python
对python 命令的-u参数详解
2018/12/03 Python
由面试题加深对Django的认识理解
2019/07/19 Python
Python实现语音识别和语音合成功能
2019/09/20 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
Html5页面上如何禁止手机虚拟键盘弹出
2020/03/19 HTML / CSS
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
Java语言程序设计测试题改错题部分
2014/07/22 面试题
通信专业个人自我鉴定
2013/10/21 职场文书
初二物理教学反思
2014/01/29 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
谢师宴答谢词
2015/01/05 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
导游词之南京汤山温泉
2019/11/26 职场文书
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL
Nginx 502 bad gateway错误解决的九种方案及原因
2022/08/14 Servers