Ionic + Angular.js实现验证码倒计时功能的方法


Posted in Javascript onJune 12, 2017

前言

之前跟大家分享了关于 Android 原生实现验证码倒计时,地址是这里,现在公司使用 Ionic 开发的 App 也要实现类似的功能,现在也记录下来,供大家参考:

效果图:

Ionic + Angular.js实现验证码倒计时功能的方法

正文

首先介绍下与本文相关的概念 $interval

$interval window.setInterval 的 Angular 包装形式,函数如果在没有被取消的时候会无限执行。(取消使用 cancel(promise) )

用法:

$interval(fn,delay,[count],[invokeApply],[Pass]);

参数说明:

  • fn : 无限执行的函数 必须参数,必传
  • delay : 每次调用的间隔毫秒数值 必须参数,必传
  • count : 循环次数的数值,如果没设置,则无限制循环 非必须参数,可不传
  • invokeApply : 如果设置为false,则避开脏值检查,否则将调用$apply 非必须参数,可不传
  • Pass : 函数的附加参数 非必须参数,可不传

方法:

1、cancel(promise)

      promise:$interval函数的返回值。

具体实现

$scope.description = "获取验证码";

 var timerHandler = null;

 /**
 * 倒计时
 * @param time 控制循环次数
 */
 var countDown = function (second,time) {
 timerHandler = $interval(function () {
  if (second <= 0) {
  $interval.cancel(timerHandler);
  second = 59;
  $scope.description = "获取验证码";
  } else {
  $scope.description = second + "s 后可重发";
  second--;
  }
 }, 1000, time)
 }

调用

countDown(59,60);

最后别忘了注入 $interval

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
JavaScript 处理Iframe自适应高度(同或不同域名下)
Mar 29 Javascript
javascript数组去重方法汇总
Apr 23 Javascript
简单几步实现返回顶部效果
Dec 05 Javascript
原生js实现对Ajax的封装(仿jquery)
Jan 22 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
vue几个常用跨域处理方式介绍
Feb 07 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
elementUI table表格动态合并的示例代码
May 15 Javascript
微信小程序如何调用图片接口API并居中显示
Jun 29 Javascript
vue中的v-if和v-show的区别详解
Sep 01 Javascript
微信小程序 实现点击添加移除class
Jun 12 #Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
Jun 12 #Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
Jun 12 #Javascript
利用Jasmine对Angular进行单元测试的方法详解
Jun 12 #Javascript
原JS实现banner图的常用功能
Jun 12 #Javascript
手把手搭建安装基于windows的Vue.js运行环境
Jun 12 #Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
Jun 12 #Javascript
You might like
利用php来自动调用不同服务器上的flash
2006/10/09 PHP
关于页面优化和伪静态
2009/10/11 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
Yii框架表单提交验证功能分析
2017/01/07 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
thinkphp3.2实现在线留言提交验证码功能
2017/07/19 PHP
PHP使用PDO抽象层获取查询结果的方法示例
2018/05/10 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
nodejs创建web服务器之hello world程序
2015/08/20 NodeJs
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
javascript实现将数字转成千分位的方法小结【5种方式】
2016/12/11 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
再谈Angular4 脏值检测(性能优化)
2018/04/23 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
2019/11/04 jQuery
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
[48:21]Mski vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
Python 文件读写操作实例详解
2014/03/12 Python
Python中Class类用法实例分析
2015/11/12 Python
Python通过DOM和SAX方式解析XML的应用实例分享
2015/11/16 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
详解Python 切片语法
2019/06/10 Python
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
防邪知识进家庭活动方案
2014/08/26 职场文书
安装工程师岗位职责
2015/02/13 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
2019暑假阅读倡议书
2019/06/24 职场文书
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers