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 相关文章推荐
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
Nov 23 Javascript
extjs grid取到数据而不显示的解决
Dec 29 Javascript
JS将光标聚焦在文本最后的实现代码
Mar 28 Javascript
jQuery实现的图片分组切换焦点图插件
Jan 06 Javascript
jquery对象和DOM对象的相互转换详解
Oct 18 Javascript
使用jQuery,Angular实现登录界面验证码详解
Apr 27 jQuery
关于Vue组件库开发详析
Jul 01 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
Sep 16 Javascript
基于element-ui组件手动实现单选和上传功能
Dec 06 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
Feb 27 Javascript
js实现鼠标拖曳效果
Dec 30 Javascript
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
移动端使用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发送post请求函数分享
2014/03/06 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
JS基于cookie实现来宾统计记录访客信息的方法
2015/08/04 Javascript
js实现的全国省市二级联动下拉选择菜单完整实例
2015/08/17 Javascript
简单实现js选项卡切换效果
2016/02/03 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
移动开发之自适应手机屏幕宽度
2016/11/23 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
[01:39]2014DOTA2国际邀请赛 Newbee经理CU专访队伍火力全开
2014/07/15 DOTA
[05:05]DOTA2亚洲邀请赛 战队出场仪式
2015/02/07 DOTA
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
windows下添加Python环境变量的方法汇总
2018/05/14 Python
实例讲解python中的序列化知识点
2018/10/08 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
Python可迭代对象操作示例
2019/05/07 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
Python魔术方法专题
2020/06/19 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
HTML5+CSS3实现拖放(Drag and Drop)示例
2014/07/07 HTML / CSS
2014感恩节演讲稿大全
2014/10/11 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
党员公开承诺书2015
2015/01/21 职场文书
任长霞观后感
2015/06/16 职场文书
导游词之青城山景区
2019/09/27 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python