ionic+AngularJs实现获取验证码倒计时按钮


Posted in Javascript onApril 22, 2017

按钮功能为:点击“获取验证码”——按钮不可用-设置倒计时-60秒后重新获取。

主要实现原理:点击后,设置一个$interval,每一秒更改一次剩余时间,并依赖Angular数据绑定实时显示在页面中。设置一个$timeout,60秒后将按钮初始化到可用状态。

实现代码:

(1)js代码,设置成一个directive以便多次调用。

angular.module('winwin').directive('timerbutton', function($timeout, $interval){
  return {
    restrict: 'AE',
    scope: {
      showTimer: '=',
      timeout: '='
    },
    link: function(scope, element, attrs){
      scope.timer = false;
      scope.timeout = 60000;
      scope.timerCount = scope.timeout / 1000;
      scope.text = "获取验证码";

      scope.onClick = function(){
        scope.showTimer = true;
        scope.timer = true;
        scope.text = "秒后重新获取";
        var counter = $interval(function(){
          scope.timerCount = scope.timerCount - 1;
        }, 1000);

        $timeout(function(){
          scope.text = "获取验证码";
          scope.timer = false;
          $interval.cancel(counter);
          scope.showTimer = false;
          scope.timerCount = scope.timeout / 1000;
        }, scope.timeout);
      }
    },
    template: '<button on-tap="onClick()" class="button button-calm xgmm-btn" ng-disabled="timer"><span ng-if="showTimer">{{ timerCount }}</span>{{text}}</button>'
  };
});

(2)html代码

<timerbutton show-timer="false">获取验证码</timerbutton>

实现效果:

(1)点击之前

ionic+AngularJs实现获取验证码倒计时按钮

(2)点击之后

ionic+AngularJs实现获取验证码倒计时按钮 

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

Javascript 相关文章推荐
iframe异步加载实现点击左边菜单加载右边内容实例讲解
Mar 04 Javascript
JS实现div居中示例
Apr 17 Javascript
JavaScript数据类型检测代码分享
Jan 26 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
Dec 26 Javascript
快速掌握jQuery插件开发
Jan 19 Javascript
微信小程序倒计时功能实现代码
Nov 09 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
Dec 12 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
Aug 09 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
Dec 25 Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
如何在Express4.x中愉快地使用async的方法
Nov 18 Javascript
移动端使用localResizeIMG4压缩图片
Apr 22 #Javascript
使用Xcache缓存器加速PHP网站的配置方法
Apr 22 #Javascript
AngularJS的脏检查深入分析
Apr 22 #Javascript
在node中如何使用 ES6
Apr 22 #Javascript
JS实现异步上传压缩图片
Apr 22 #Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
Apr 22 #Javascript
Vue form 表单提交+ajax异步请求+分页效果
Apr 22 #Javascript
You might like
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
2014/08/21 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
php实现购物车功能(上)
2020/07/23 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
jQuery搜索子元素的方法
2015/02/10 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
JS拖动鼠标画出方框实现鼠标选区的方法
2015/08/05 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
常用python编程模板汇总
2016/02/12 Python
Python之os操作方法(详解)
2017/06/15 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
Django rest framework实现分页的示例
2018/05/24 Python
Numpy中的mask的使用
2018/07/21 Python
Python中分支语句与循环语句实例详解
2018/09/13 Python
python 实现敏感词过滤的方法
2019/01/21 Python
Python处理PDF与CDF实例
2020/02/26 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
中专毕业自我鉴定
2013/10/16 职场文书
软件工程专业推荐信
2013/10/28 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
项目合作协议书范本
2014/04/16 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android