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 相关文章推荐
Prototype最新版(1.5 rc2)使用指南(1)
Jan 10 Javascript
文本框中,回车键触发事件的js代码[多浏览器兼容]
Jun 07 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Jun 05 Javascript
javascript中的return和闭包函数浅析
Jun 06 Javascript
JavaScript中清空数组的方法总结
Dec 02 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
vue实现提示保存后退出的方法
Mar 15 Javascript
jQuery动态移除与增加onclick属性的方法详解
Jun 07 jQuery
js实现轮播图的完整代码
Oct 26 Javascript
微信小程序缓存过期时间的使用详情
May 12 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/10/09 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
vue router 源码概览案例分析
2018/10/09 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Django Highcharts制作图表
2016/08/27 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
Python3网络爬虫中的requests高级用法详解
2019/06/18 Python
python 安装impala包步骤
2020/03/28 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
英国设计师珠宝网站:Joshua James Jewellery
2020/03/01 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
工作人员思想汇报
2014/01/09 职场文书
化学工程专业求职信
2014/08/10 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
现实表现材料范文
2014/12/23 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
优胜劣汰,强者为王——读《鲁滨逊漂流记》有感
2019/08/15 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS