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 IFrame 强制刷新代码
Jul 23 Javascript
js 控制页面跳转的5种方法
Sep 09 Javascript
jQuery中clearQueue()方法用法实例
Dec 29 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
谈一谈jQuery核心架构设计
Mar 28 Javascript
第一次接触JS require.js模块化工具
Apr 17 Javascript
jQuery链式调用与show知识浅析
May 11 Javascript
JS封装的自动创建表格的实现代码
Jun 15 Javascript
jQuery tip提示插件(实例分享)
Apr 28 jQuery
使用axios实现上传图片进度条功能
Dec 21 Javascript
基于node简单实现RSA加解密的方法步骤
Mar 21 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 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/07/08 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
使用javascript访问XML数据的实例
2006/12/27 Javascript
javascript 网页跳转的方法
2008/12/24 Javascript
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
2011/01/01 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
React学习笔记之列表渲染示例详解
2017/08/22 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
推荐一个基于Node.js的表单验证库
2019/02/15 Javascript
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
Python创建模块及模块导入的方法
2015/05/27 Python
python实现车牌识别的示例代码
2019/08/05 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
银行见习期自我鉴定
2014/01/29 职场文书
广告业务员岗位职责
2014/02/06 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
西湖英语导游词
2015/02/06 职场文书
水电工程师岗位职责
2015/02/13 职场文书