AngularJS定时器的使用与移除操作方法【interval与timeout】
本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。
相关推荐
-
AngualrJs清除定时器遇到的坑
angualrJs清除定时器爬坑之路: 今天发现一个奇怪问题,放在自定义指令里边的定时器竟然在页面跳转之后,在另一个页面这个循环定时器还在执行,这肯定是不行的,会影响系统的性能. 我在angular里边用原生的方法window.onunload方法竟然不管用,所以只好用angular自己的方法$destroy,这页面跳转,DOM结构发生变化是都能清除定时器 var timer = setInterval(function(){ $scope.$apply(function(){ //这里是想要定
-
AngularJs定时器$interval 和 $timeout详解
$interval window.setInterval的Angular包装形式.Fn是每次延迟时间后被执行的函数. 间隔函数的返回值是一个承诺.这个承诺将在每个间隔刻度被通知,并且到达规定迭代次数后被取消,如果迭代次数未定义,则无限制的执行.通知的值将是运行的迭代次数.取消一个间隔,调用$intreval.cancel(promise). 备注:当你执行完这项服务后应该把它销毁.特别是当controller或者directive元素被销毁时而$interval未被销毁.你应该考虑到在适当的时候
-
AngularJS定时器的使用与移除操作方法【interval与timeout】
本文实例讲述了AngularJS定时器的使用与移除操作方法.分享给大家供大家参考,具体如下: 1.相比较于JS中setTimeInterval和setTimeout,AngularJS中通过interval来实现定时器的效果,通过timeout来实现时间延迟. $timeout //实现的是延迟执行 $interval //实现的是定时器的效果 我们分别来看这两个服务 (1)timeout timeout相当于JS原生里面的延迟执行,不同的是该服务的函数返回的是一个promise对象. var
-
浅谈Angularjs中不同类型的双向数据绑定
Angularjs1.X中两种不同的双向数据绑定 聊聊 Angularjs1.x中那些活见鬼的事情. 一. html与Controller中的双向数据绑定 html-Controller的双向数据绑定,在开发中非常常见,也是Angularjs1.x的宣传点之一,使用中并没有太多问题. 1.1数据从html流向controller 也就是从 视图层 流向 模型层 ,原生html中需要使用表单元素(例如 input 标签)来收集用户输入信息,Angularjs中通过在表单元素上使用 ng-model
-
AngularJS 验证码60秒倒计时功能的实现
最近在做AngularJS 项目,这是写的一个60秒倒计时, angularjs 与jq不同, 不是使用dom节点操作,而是数据操作,写倒计时,最好是使用$timeout与$interval ,不要使用settimeout与setinterval .$timeout与$interval 可使绑定数据直接更新. html <a href="javascript:" rel="external nofollow" ng-click="sendphone
-
Java定时器问题实例解析
定时器问题 定时器属于基本的基础组件,不管是用户空间的程序开发,还是内核空间的程序开发,很多时候都需要有定时器作为基础组件的支持.一个定时器的实现需要具备以下四种基本行为:添加定时器.取消定时器.定时器检查.到期执行. 请设计一个定时器并实现以下三种基本行为,函数原型已给出,可使用任意编程语言设计数据结构及实现,并尽可能高效地支持大量定时器: // 添加定时器:经过特定时间间隔后执行目标操作 // 输入 1:Interval 定时器时间,单位ms // 输入 2:ExpiryAction 目标操
-
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
本文实例讲述了jQuery bt气泡实现悬停显示及移开隐藏功能的方法.分享给大家供大家参考,具体如下: jQuery.bt.options.closeWhenOthersOpen = true; $("img.eq-message").bt({ trigger:["mouseover", "click"], contentSelector:"$(this).next().html()", positions:["le
-
JavaScript 浏览器对象模型BOM使用介绍
BOM也叫做浏览器对象模型,它提供了很多对象,用于访问浏览器的功能;这些功能与任何网页内容无关; BOM缺少规范,每个浏览器提供商都按照自己的想法去扩展它,那么浏览器共有对象就成了事实的标准; 一 window对象 // BOM的核心对象是window,它表示浏览器的一个实例; // window对象处于JavaScript结构的最顶层; // 对于每个打开的窗口,系统都会自动为其定义window对象; // window对象同时扮演着ECMAScript中Global对象的角色,因此所有在全局
-
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
内容滑动切换应用非常广,常见的有幻灯片焦点图.画廊切换等.随着WEB前端技术的广泛应用,内容滑动切换效果占据着web页面重要地位,因此本站Helloweba特别给广大前端爱好者安排了浅显易懂的内容滑动切换效果的开发教程. 先给大家展示下效果图,感觉还不错请参数实现代码,具体效果如下所示: 效果展示 源码下载 本次教程分三个部分: 1.使用jQuery开发基本的内容滑动切换效果, 2.支持移动端触控自适应的内容滑动切换效果, 3.封装内容滑动切换效果jQuery插件. 本文讲解第一部分,
-
原生JS实现匀速图片轮播动画
JS实现轮播图实现结果图: 需求: 1 根据图片动态添加小圆点 2 目标移动到小圆点轮播图片 3 鼠标离开图片,定时轮播图片:鼠标在图片上时暂停 4 左右两侧可点击轮播图片 一.布局部分 html部分 <div class="w main clearfix"><!--主内容部分开始--> <div class="slider"><!--轮播图部分开始--> <ul class="imgs"
-
javascript中BOM基础知识总结
一.什么是BOM BOM(Browser Object Document)即浏览器对象模型. BOM提供了独立于内容 而与浏览器窗口进行交互的对象: 由于BOM主要用于管理窗口与窗口之间的通讯,因此其核心对象是window: BOM由一系列相关的对象构成,并且每个对象都提供了很多方法与属性: BOM缺乏标准,JavaScript语法的标准化组织是ECMA,DOM的标准化组织是W3C,BOM最初是Netscape浏览器标准的一部分. 二.学习BOM学什么 我们将学到与浏览器窗口交互的一些对象,例如
随机推荐
- Angularjs制作简单的路由功能demo
- Perl中使用dig和nali判断DNS解析地址归属地是否一致脚本分享
- JavaScript设置首页和收藏页面的小例子
- ASP.NET实现的简单易用文件上传类
- python实现发送邮件及附件功能
- 利用pyinstaller或virtualenv将python程序打包详解
- 有效的捕获JavaScript焦点的方法小结
- 彻底弄懂CSS盒子模式系列教程集合
- Ruby 中关于日文转UTF-8及半角全角转换的技巧
- js时间比较示例分享(日期比较)
- JavaScript来实现打开链接页面的简单实例
- 最简单使IIS支持ASPX的权限设置(不建议服务器设置)
- java 中序列化NotSerializableException问题解决办法
- Flex 动态绑定BindingUtils.bindProperty
- thinkphp框架实现数据添加和显示功能
- 交换机VLAN的配置之二
- Android优化方案之Fragment的懒加载实现代码
- vue单个组件实现无限层级多选菜单功能
- AJAX 动态加载后台数据 绑定select的方法
- vue安装和使用scss及sass与scss的区别详解