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 相关文章推荐
HTML Color Picker(js拾色器效果)
Aug 27 Javascript
javascript的parseFloat()方法精度问题探讨
Nov 26 Javascript
jquery简单图片切换显示效果实现方法
Jan 14 Javascript
Jquery 实现图片轮换
Jan 28 Javascript
js实现的下拉框二级联动效果
Apr 30 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
Sep 05 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
Dec 27 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
Feb 10 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
详解babel升级到7.X采坑总结
May 12 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
Aug 11 Javascript
JavaScript实现简单日历效果
Sep 11 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开发入门教程之面向对象
2006/12/05 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
PHP strripos函数用法总结
2019/02/11 PHP
ExtJS Grid使用SimpleStore、多选框的方法
2009/11/20 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
react 实现页面代码分割、按需加载的方法
2018/04/03 Javascript
关于node-bindings无法在Electron中使用的解决办法
2018/12/18 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
用Python实现命令行闹钟脚本实例
2016/09/05 Python
Python批量查询域名是否被注册过
2017/06/21 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
美国宠物美容和宠物用品购物网站:Cherrybrook
2018/12/07 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
通信工程专业女生个人求职信
2013/09/21 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
先进事迹演讲稿
2014/09/01 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js