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 相关文章推荐
利用location.hash实现跨域iframe自适应
May 04 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
Aug 05 Javascript
jQuery关键词说明插件cluetip使用指南
Apr 21 Javascript
理解Javascript文件动态加载
Jan 29 Javascript
js 定义对象数组(结合)多维数组方法
Jul 27 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
Jul 02 Javascript
vue改变对象或数组时的刷新机制的方法总结
Apr 24 Javascript
vuejs实现下拉框菜单选择
Oct 23 Javascript
JavaScript实现音乐导航效果
Nov 19 Javascript
js闭包的9个使用场景
Dec 29 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
Cannot modify header information错误解决方法
2008/10/08 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2014/12/01 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
Javascript Global对象
2009/08/13 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
开启Javascript中apply、call、bind的用法之旅模式
2015/10/28 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
vue学习笔记之指令v-text &amp;&amp; v-html &amp;&amp; v-bind详解
2017/05/12 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
Python中编写ORM框架的入门指引
2015/04/29 Python
python入门教程之识别验证码
2017/03/04 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
Python获取CPU、内存使用率以及网络使用状态代码
2018/02/08 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
大学毕业自我评价
2014/02/02 职场文书
校园元旦活动总结
2014/07/09 职场文书
护士2014年终工作总结
2014/11/11 职场文书
2014年药店工作总结
2014/11/20 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书