Angular.js中定时器循环的3种方法总结


Posted in Javascript onApril 27, 2017

本文主要设计定时器的三种循环,模板自配,下面分享给大家供大家参考,具体如下:

1、$interlval实现,比较简单和原生js的setInterval比较相似

var app = angular.module('myApp',[]);
app.run(function($rootScope , $interval){
 var img=["http://hdn.xnimg.cn/photos/hdn321/20130612/2235/h_main_NNN4_e80a000007df111a.jpg" ,"http://ww2.sinaimg.cn/crop.0.0.1080.1080.1024/d773ebfajw8eum57eobkwj20u00u075w.jpg","http://h.hiphotos.baidu.com/zhidao/pic/item/3812b31bb051f81991b9d8dbdcb44aed2f73e787.jpg"]
 var i = 0;
 var timer = $interval(function(){
  if(i >= img.length){
   i = 0;
  }
  $rootScope.imgSrc = img[i++];
 },1000)
});

2、$timeout的递归调用来实现

app.run(function($rootScope,$timeout){
 var img=["http://hdn.xnimg.cn/photos/hdn321/20130612/2235/h_main_NNN4_e80a000007df111a.jpg" ,"http://ww2.sinaimg.cn/crop.0.0.1080.1080.1024/d773ebfajw8eum57eobkwj20u00u075w.jpg","http://h.hiphotos.baidu.com/zhidao/pic/item/3812b31bb051f81991b9d8dbdcb44aed2f73e787.jpg"]
 var i = 0;
 $rootScope.c = 0;
 var loop = function(){
  $timeout(function(){
   if(i >= img.length){
    i = 0;
   }
   $rootScope.imgSrc=img[i++];
   loop();
   $rootScope.c += 1;
  },2000)
 };
 loop();
})

3、$timeout借助arguments.callee来实现

app.run(function($rootScope,$timeout){
 var img=["http://hdn.xnimg.cn/photos/hdn321/20130612/2235/h_main_NNN4_e80a000007df111a.jpg" ,"http://ww2.sinaimg.cn/crop.0.0.1080.1080.1024/d773ebfajw8eum57eobkwj20u00u075w.jpg","http://h.hiphotos.baidu.com/zhidao/pic/item/3812b31bb051f81991b9d8dbdcb44aed2f73e787.jpg"]
 var i = 0;
 $rootScope.c = 0;
 var loop = function(){
  $timeout(function(){
   if(i >= img.length){
    i = 0;
   }
   $rootScope.imgSrc=img[i++];
   loop();
   $rootScope.c += 1;
  },2000)
 };
 loop();
})

更多关于AngularJS相关内容感兴趣的读者可查看本站专题:《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》 

总结

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

Javascript 相关文章推荐
我的javascript 函数链之演变
Apr 07 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
Oct 01 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
Sep 22 Javascript
jquery radio的取值_radio的选中_radio的重置方法
Sep 20 Javascript
解决vue处理axios post请求传参的问题
Mar 05 Javascript
对layui中表单元素的使用详解
Aug 15 Javascript
vuejs 制作背景淡入淡出切换动画的实例
Sep 01 Javascript
基于element-ui的rules中正则表达式
Sep 04 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
浅谈开发eslint规则
Oct 01 Javascript
服务端预渲染之Nuxt(使用篇)
Apr 08 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
Jan 17 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 #Javascript
微信小程序 wx:for的使用实例详解
Apr 27 #Javascript
微信小程序 动态传参实例详解
Apr 27 #Javascript
微信小程序 本地数据读取实例
Apr 27 #Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 #Javascript
js获取浏览器的各种属性
Apr 27 #Javascript
jQuery鼠标悬停内容动画切换效果
Apr 27 #jQuery
You might like
PHP的历史和优缺点
2006/10/09 PHP
用PHP调用数据库的存贮过程!
2006/10/09 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
深入理解javascript动态插入技术
2013/11/12 Javascript
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
Bootstrap Fileinput文件上传组件用法详解
2016/05/10 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
基于vue-cli3创建libs库的实现方法
2019/12/04 Javascript
python基础教程之面向对象的一些概念
2014/08/29 Python
Python中将字典转换为列表的方法
2016/09/21 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
Python函数参数分类原理详解
2020/05/28 Python
Python Django搭建网站流程图解
2020/06/13 Python
python中rb含义理解
2020/06/18 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
趣味比赛活动方案
2014/02/15 职场文书
诚信贷款承诺书
2014/05/30 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
2014年文秘工作总结
2014/11/25 职场文书
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android