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 相关文章推荐
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
Feb 24 Javascript
jquery获取html元素的绝对位置和相对位置的方法
Jun 20 Javascript
javascript中函数作为参数调用的方法
Feb 09 Javascript
javascript比较两个日期相差天数的方法
Jul 24 Javascript
jQuery插件uploadify实现ajax效果的图片上传
Jun 18 Javascript
jQuery自适应轮播图插件Swiper用法示例
Aug 24 Javascript
浅谈js中function的参数默认值
Feb 20 Javascript
React Native中Mobx的使用方法详解
Dec 04 Javascript
VUE+Element环境搭建与安装的方法步骤
Jan 24 Javascript
VUE DEMO之模拟登录个人中心页面之间数据传值实例
Oct 31 Javascript
基于PHP pthreads实现多线程代码实例
Jun 24 Javascript
详细分析Node.js 模块系统
Jun 28 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
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
php使用Session和文件统计在线人数
2015/07/04 PHP
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
详解javascript 变量提升(Hoisting)
2019/03/12 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
[44:39]2014 DOTA2国际邀请赛中国区预选赛 NE VS CNB
2014/05/21 DOTA
Python中分支语句与循环语句实例详解
2018/09/13 Python
Python 硬币兑换问题
2019/07/29 Python
Python PyInstaller安装和使用教程详解
2020/01/08 Python
python numpy数组中的复制知识解析
2020/02/03 Python
python使用paramiko实现ssh的功能详解
2020/03/06 Python
CSS3哪些新特性值得称赞
2016/03/02 HTML / CSS
html Table 表头固定的实现
2019/01/22 HTML / CSS
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
HTML5有哪些新特征
2015/12/01 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
运动会解说词100字
2014/01/31 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
征兵宣传标语
2014/06/20 职场文书
学党史心得体会
2014/09/05 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
基于Python实现的购物商城管理系统
2021/04/27 Python
使用Java去实现超市会员管理系统
2022/03/18 Java/Android