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编程起步(第六课)
Feb 27 Javascript
对字符串进行HTML编码和解码的JavaScript函数
Feb 01 Javascript
javascript来定义类的规范小结
Nov 19 Javascript
jQuery获取注册信息并提示实现代码
Apr 21 Javascript
AngularJS快速入门
Apr 02 Javascript
理解和运用JavaScript的闭包机制
Aug 13 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
基于JavaScript实现添加到购物车效果附源码下载
Aug 22 Javascript
浅谈javascript的url参数parse和build函数
Mar 04 Javascript
详解webpack中的hash、chunkhash、contenthash区别
Jan 05 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
利用JS判断元素是否为数组的方法示例
Jan 08 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
用Zend Encode编写开发PHP程序
2006/10/09 PHP
支持png透明图片的php生成缩略图类分享
2015/02/08 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
node.js中的console用法总结
2014/12/15 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
2015/11/26 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
JavaScript操作表单实例讲解(上)
2016/06/20 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
微信小程序 setData 对 data数据影响问题
2019/04/18 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
2019/11/01 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
微信小程序实现录制、试听、上传音频功能(带波形图)
2020/02/27 Javascript
如何利用JavaScript编写一个格斗小游戏
2021/01/06 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
详解Django中的form库的使用
2015/07/18 Python
python更新列表的方法
2015/07/28 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
Python selenium抓取微博内容的示例代码
2018/05/17 Python
对python自动生成接口测试的示例讲解
2018/11/30 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
keras load model时出现Missing Layer错误的解决方式
2020/06/11 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
python如何处理程序无法打开
2020/06/16 Python
String是最基本的数据类型吗?
2013/06/13 面试题
文秘个人求职信范文
2014/04/22 职场文书
白鹤梁导游词
2015/02/06 职场文书
党员自我评价范文2015
2015/03/03 职场文书
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript
Go语言怎么使用变长参数函数
2022/07/15 Golang