AngularJS定时器的使用与移除操作方法【interval与timeout】


Posted in Javascript onDecember 14, 2016

本文实例讲述了AngularJS定时器的使用与移除操作方法。分享给大家供大家参考,具体如下:

1.相比较于JS中setTimeInterval和setTimeout,AngularJS中通过interval来实现定时器的效果,通过timeout来实现时间延迟。

$timeout //实现的是延迟执行
$interval //实现的是定时器的效果

我们分别来看这两个服务

(1)timeout

timeout相当于JS原生里面的延迟执行,不同的是该服务的函数返回的是一个promise对象。

var timer=$timeout(function(){
   console.log('hello world')
},2000);  //该函数延迟2秒执行
timer.then(function(){ console.log('创建成功')},
function(){ console.log('创建不成功')};

(2)interval

interval与timeout服务大同小异,创建定时器返回的也是一个promise对象。

var timer=$interval(function(){
   console.log('hello world')
},2000);  //间隔2秒定时执行
timer.then(function(){ console.log('创建成功')},
function(){ console.log('创建不成功')};

2.如何移除定时器

在angularJSo中,特别是在页面切换或者说是路由切换的时候,我们需要移除响应的定时器,我们可以通过on方法,监听路由切换时间。当DOM结构发生变化时,会执行on方法:

$scope.$on('destroy',function(){
  $interval.cancel($scope.timer);
}) //在控制器里,添加$on函数

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
我也种棵OO树JXTree[js+css+xml]
Apr 02 Javascript
javascript 有用的脚本函数
May 07 Javascript
学习JS面向对象成果 借国庆发布个最新作品与大家交流
Oct 03 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
May 09 Javascript
获取非最后一列td值并将title设为该值的方法
Oct 30 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
Jan 15 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
Vue.js中的组件系统
May 30 Javascript
javscript 数组扁平化的实现
Feb 03 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
Apr 18 #Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 #Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
Dec 14 #Javascript
bootstrap modal弹出框的垂直居中
Dec 14 #Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 #Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 #Javascript
bootstrap模态框实现拖拽效果
Dec 14 #Javascript
You might like
刚才在简化php的库,结果发现很多东西
2006/12/31 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
PHP Yaf框架的简单安装使用教程(推荐)
2016/06/08 PHP
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
CentOS系统中PHP安装扩展的方式汇总
2017/04/09 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
图片自动更新(说明)
2006/10/02 Javascript
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
基于node.js依赖express解析post请求四种数据格式
2017/02/13 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python实现最小二乘法线性拟合
2019/07/19 Python
Python如何实现强制数据类型转换
2019/11/22 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Python3开发环境搭建详细教程
2020/06/18 Python
python如何输出反斜杠
2020/06/18 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
EJB面试题
2015/07/28 面试题
火锅店创业计划书范文
2014/02/02 职场文书
国旗下的演讲稿
2014/05/08 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
紧急通知
2015/04/17 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
oracle重置序列从0开始递增1
2022/02/28 Oracle