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 相关文章推荐
javascript中类的定义及其方式(《javascript高级程序设计》学习笔记)
Jul 04 Javascript
Jquery实现仿腾讯微博发表广播
Nov 17 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
Mar 11 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
详解js静态资源文件请求的处理
Aug 01 Javascript
详解Nuxt.js Vue服务端渲染摸索
Feb 08 Javascript
妙用缓存调用链实现JS方法的重载
Apr 30 Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 Javascript
浅谈Vue服务端渲染框架Nuxt的那些事
Dec 21 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
js实现特别简单的钟表效果
Sep 14 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 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
短波的认识
2021/03/01 无线电
PHP 调试工具Debug Tools
2011/04/30 PHP
javascript获取当前ip的代码
2009/05/10 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
jQuery中ztree 点击文本框弹出下拉框的实例代码
2017/02/05 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
在Django中创建动态视图的教程
2015/07/15 Python
Python数组定义方法
2016/04/13 Python
Windows下Python2与Python3两个版本共存的方法详解
2017/02/12 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Python换行与不换行的输出实例
2020/02/19 Python
个人实习生的自我评价
2014/02/16 职场文书
工作违纪检讨书
2014/02/17 职场文书
中学教师个人总结
2015/02/10 职场文书
2015毕业寄语大全
2015/02/26 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
运动会主持人开幕词
2016/03/04 职场文书