1. 程式人生 > >angularjs中迴圈定時器的三種方法

angularjs中迴圈定時器的三種方法

本文主要設計定時器的三種迴圈,模板自配

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迴圈定時方法

本文主要設計定時器的三種迴圈,模板自配 1、$interlval實現,比較簡單和原生js的setInterval比較相似 var app = angular.module('myApp',[]);

vue錨點的方法

第一種: router.js中新增 mode: 'history', srcollBehavior(to,from,savedPosition){ if(to.hash){ return { selector:to.hash } } } 元件: &

java向多執行緒傳遞引數的方法詳細介紹

在傳統的同步開發模式下,當我們呼叫一個函式時,通過這個函式的引數將資料傳入,並通過這個函式的返回值來返回最終的計算結果。但在多執行緒的非同步開發模式下,資料的傳遞和返回和同步開發模式有很大的區別。由於執行緒的執行和結束是不可預料的,因此,在傳遞和返回資料時就無法象函式一樣通過

TP5控制器使用檢視的方法

1、直接例項化檢視類 1、檢視類: thinkphp/library/think/View.php; 2、名稱空間: use think\View; 3、例項化: 動態 new View(); 靜態 View::instance(); 4、常用方法: fetch()渲染模板, displ

C# 使用using的方法

1.using指令using+名稱空間,這種方法基本學習過C#的都用過,好處在於,寫程式碼的時候不需要指定詳細的名稱空間using System.Windows.Media; using System.Windows.Media.Imaging;2.using語句是用來簡化資源釋放的,在一定的範圍內有效,除了

android呼叫音樂播放,方法

小弟想請問一下,如何在自己寫的程式中呼叫系統的音樂播放器呢。 我在google上搜索了,主要是有兩種方法,但是都不是我想要的。第一種是,使用mp3音樂檔案的uri,和intent,進行呼叫,但是這種是針對某一首歌曲的播放使用的。 /** * 播放指定名稱的歌曲

Matlab陣列元素引用——方法

1.Matlab中陣列元素引用有三種方法 1 2 3 1.下標法(subscripts) 2.索引法(index) 3.布林法(Boolean) 注意:在使用這三種方法之前,大家頭腦一定要

vc刪除資料夾以及資料夾的內容的方法

BOOL CDeleteFolderDlg::DeleteFolder(CString lpszPath)//刪除資料夾以及資料夾內的檔案 { CHAR szFromPath[_MAX_PATH];//原始檔路徑memcpy(szFromPath, lpszPath, lp

從httprequest獲取並解析content的xml內容方法

一、request.getReader()和DocumentHelper.parseText() import java.io.BufferedReader; import javax.servlet

LinuxVim編輯模式和命令

原文地址:http://www.tuicool.com/articles/NZz2ii Vim的3種模式:一般模式、編輯模式和命令模式。 當我們是用“ vim filename ”編輯一個檔案的時候,預設進入該檔案的一般模式。 開啟檔案的命令有很多,如下圖所示。

Android傳遞物件的方法

編輯推薦:稀土掘金,這是一個針對技術開發者的一個應用,你可以在掘金上獲取最新最優質的技術乾貨,不僅僅是Android知識、前端、後端以至於產品和設計都有涉獵,想成為全棧工程師的朋友不要錯過!Android中,Activity和Fragment之間傳遞物件,可以通過將物件序列化

網頁插入FLASH的方法

一、Object+embed這應該是Macromedia推薦的寫法,因為在Macromedia Dreamweaver 8中,通過視覺化介面插入FLASH,將得到如下的程式碼:<object classid="clsid:D27CDB6E-AE6D-11cf-96B8

【PHP興趣部落-08】PHP時區設定的方法(timezone)

一 、三種方法 php中時區預設是格林尼治時間,和中國時差八個小時。現在根據需要將時間設定為中國時間,下面整理了三種方法。 方法1: 最好的方法在php.ini里加上找到 date.timezone 項,設定date.timezone = “Asia

PHP時區設定的方法(timezone)

方法1:(最好的方法)在php.ini里加上找到date.timezone項,設定date.timezone = "Asia/Shanghai",重啟環境就ok了。方法2:在需要用到這些時間函式的時候,在頁面新增date_default_timezone_set("PRC")

unity訊息傳遞的方法

unity中提供了物件間訊息傳遞的三種方法: BroadcastMessage()方法SendMessage()方法SendMessageUpwards()方法 BroadcastMessage方法: void BroadcastMessage (string meth

C#操作Word(8)—— 向Word插入圖表的方法(一)

一、 前言         本文主要介紹向word中插入圖表的方法。方法共有三種,每一種都有自己的適用範圍和利弊。介紹之前,我們準備實驗用的文件,做一個如下圖所示的word模板,我們要做的的是在這個名叫chart的書籤中插入一個圖表,下面然後我將逐一進行介紹這三種方法:

Shell字串分割的方法

問題:對於’1,2,3,4,5’這樣的字串輸出採用,分隔開的1 2 3 4 5 特徵:在字串中沒有空格 解決方法1: #!/bin/bash var=’1,2,3,4,5’ var=${var//,/ } #這裡是將var中的,替換為空格 for element in

Android圖片圓形設定方法介紹

Android開發中經常會用到圓形圖片,比如在使用者頭像設定,現在提供三種主要實現方式: 方案一:使用第三方影象框架 Fresco 1、新增依賴 dependencies { compile 'com.facebook.fresco:f

JAVA:定時方法(詳細註解)

第一種:         建立一個thread,然後讓它在while迴圈裡一直執行著,通過sleep方法來達到定時任務的效果,程式碼如下: public class Task1 { public static void main(String[] args) { /

shell指令碼程式設計for while until迴圈的使用方法

最後要介紹的是 shell script 設計中常見的"迴圈"(loop)。所謂的 loop 就是 script 中的一段在一定條件下反覆執行的程式碼。 bash shell 中常用的 loop 有如下三種: * for * while * until for l