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 相关文章推荐
JavaScript高级程序设计
Dec 29 Javascript
利用ajaxfileupload插件实现文件上传无刷新的具体方法
Jun 08 Javascript
JS与C#编码解码
Dec 03 Javascript
深入解析JavaScript中的数字对象与字符串对象
Oct 21 Javascript
jsp 自动编译机制详细介绍
Dec 01 Javascript
将angular.js项目整合到.net mvc中的方法详解
Jun 29 Javascript
微信JSAPI Ticket接口签名详解
Jun 28 Javascript
js实现1,2,3,5数字按照概率生成
Sep 12 Javascript
浅谈函数调用的不同方式,以及this的指向
Sep 17 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
Sep 12 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
Nov 14 Javascript
vue在线动态切换主题色方案
Mar 26 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目录操作实例总结
2016/09/27 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
IE和Firefox的Javascript兼容性总结[推荐收藏]
2011/10/19 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JS使用parseInt解析数字实现求和的方法
2015/08/05 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
基于vue.js实现购物车
2020/01/15 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python中函数参数设置及使用的学习笔记
2016/05/03 Python
Python正则表达式知识汇总
2017/09/22 Python
简单了解python关系(比较)运算符
2019/07/08 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
Python hashlib和hmac模块使用方法解析
2020/12/08 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
.NET现在共支持多少种语言
2014/02/26 面试题
名人演讲稿范文
2013/12/28 职场文书
运动会跳远加油稿
2014/02/20 职场文书
单位委托书范本
2014/04/04 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
小学五年级语文上册教学计划
2015/01/22 职场文书
中班下学期个人总结
2015/02/12 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
用python自动生成日历
2021/04/24 Python
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
mysql sock 文件解析及作用讲解
2022/07/15 MySQL