亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

angularjs之$timeout指令詳解

2019-11-19 16:20:51
字體:
來源:轉載
供稿:網友

angular.js的$timeout指令對window.setTimeout做了一個封裝,它的返回值是一個promise對象.當定義的時間到了以后,這個promise對象就會被resolve,回調函數就會被執行.

如果需要取消一個timeout,調用$timeout.cancel(promise)方法.

用法:

$timeout(fn, [delay], [invokeApply]);

fn: 回調函數(必填)

delay: number類型.延遲的時間(非必填),如果不填,表示等線程空下來以后就執行.比如當頁面被渲染完成后.

invokeApply: 布爾值.是否需要進行臟值檢測(非必填),不填默認為false,如果設置為true,則fn回調會被包在$scope.$apply()中執行

返回值: 返回一個promise對象.當定義的時間到了以后,這個promise對象就會被resolve.resolve的值就是fn回調函數的返回值

方法:

$timeout.cancel([promise])

promise: 一個由$timeout()所創建的promise對象.(非必填).調用cancel()以后,這個promise對象就會被reject.

返回值: 如果$timeout()的回調還沒有被執行,那就取消成功.返回true

下面來簡單的測試一下:

   var timeoutApp = angular.module('timeoutApp',[]);   timeoutApp.run(function($timeout){     var a = $timeout(function(){       console.log('執行$timeout回調');       return 'angular'     },1000);     a.then(function(data){       console.log(data)     },function(data){       console.log(data)     });     //$timeout.cancel(a);   })

運行以后看到控制臺打印:

執行$timeout回調
angular

如果我打開注釋,執行.cancel()方法,那么$timeout的回調就不會被執行,它返回的promise被reject,控制臺打印:

canceled

下面做個很實用的小demo: 延遲下拉菜單: 鼠標放到button上的時候,延遲500毫秒顯示下拉菜單,當鼠標離開button的時候,延遲500毫秒隱藏下拉菜單,如果鼠標是進入了下拉菜單部分,那么就不隱藏下拉菜單.如果鼠標離開了下拉菜單,延遲500毫秒隱藏下拉菜單,如果鼠標是進入了button,那么還是不隱藏下拉菜單

html:

<!DOCTYPE html><html ng-app="timeoutApp"><head>  <title>$timeout服務</title>  <meta charset="utf-8">  <link rel="stylesheet" href="../bootstrap.css" rel="external nofollow" />  <script src="../angular.js"></script>  <script src="script.js"></script>  <style type="text/css">  * {   font-family:'MICROSOFT YAHEI'  }  </style></head><body > <div ng-controller="myCtrl">   <div class="dropdown" dropdown >     <button class="btn btn-default dropdown-toggle" type="button" ng-mouseenter = "showMenu()" ng-mouseleave = "hideMenu()">       Dropdown       <span class="caret"></span>     </button>     <ul class="dropdown-menu" ng-show="ifShowMenu" ng-mouseenter = "showMenu()" ng-mouseleave = "hideMenu()">       <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Action</a></li>       <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Another action</a></li>       <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Something else here</a></li>       <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >Separated link</a></li>     </ul>   </div> </div></body></html>

js: 

var timeoutApp = angular.module('timeoutApp',[]);timeoutApp.controller('myCtrl',function($scope){  $scope.ifShowMenu = false;});timeoutApp.directive('dropdown',function($timeout){  return {    restrict:"EA",    link:function(scope,iele,iattr){      scope.showMenu = function(){        $timeout.cancel(scope.t2);        scope.t1 = $timeout(function(){          scope.ifShowMenu = true        },500)      };      scope.hideMenu = function(){        $timeout.cancel(scope.t1);        scope.t2 = $timeout(function(){          scope.ifShowMenu = false        },500)      };    }  }})

代碼應該很好理解: 就是進入button和進入ul下拉菜單的時候,都定義一個timeout回調(過500毫秒以后顯示下拉菜單),同時取消隱藏下拉菜單的回調.而離開button和ul的時候相反.

代碼地址: https://github.com/OOP-Code-Bunny/angular/tree/master/%24timeout

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久亚洲一区二区三区四区五区高| 中文字幕av日韩| 日本不卡高字幕在线2019| 中文字幕亚洲无线码在线一区| 亚洲成人av中文字幕| 成人免费看吃奶视频网站| www.99久久热国产日韩欧美.com| 欧美性高跟鞋xxxxhd| 欧美中在线观看| 国产精品自拍网| 久久这里只有精品视频首页| 久久免费精品日本久久中文字幕| 日本精品视频网站| 日韩精品视频中文在线观看| 欧美视频专区一二在线观看| 91免费人成网站在线观看18| 成人性生交大片免费看小说| 久久久亚洲国产| 欧美激情性做爰免费视频| 欧美一区二粉嫩精品国产一线天| 国产69精品久久久久99| 成人精品网站在线观看| 日本久久久久亚洲中字幕| 欧美xxxx14xxxxx性爽| 久久精品国产一区二区三区| 国产一区二区三区欧美| 97在线看福利| 97色在线播放视频| 91精品久久久久久综合乱菊| 亚洲国产精品久久久久| 全色精品综合影院| 国产成人精品久久| 亚洲另类xxxx| 丝袜一区二区三区| 欧美成人剧情片在线观看| 欧美精品激情在线| 亚洲男人的天堂在线播放| 91综合免费在线| 国产精品香蕉av| 97久久超碰福利国产精品…| 欧美激情一区二区久久久| 久热精品在线视频| 91黄色8090| 4438全国亚洲精品在线观看视频| 97色在线观看免费视频| 在线观看久久久久久| 97人人爽人人喊人人模波多| 亚洲精品www久久久久久广东| 97国产suv精品一区二区62| 91最新在线免费观看| 日韩电影中文 亚洲精品乱码| 九色精品免费永久在线| 国产成人精品一区二区| 久久久这里只有精品视频| 久久久久久91香蕉国产| 亚洲欧洲偷拍精品| 精品国产一区二区三区久久狼黑人| 亚洲精品999| 在线播放亚洲激情| 国产在线精品一区免费香蕉| 亚洲石原莉奈一区二区在线观看| 成人乱人伦精品视频在线观看| 97精品视频在线播放| 日韩欧美在线中文字幕| 亚洲福利小视频| 国产精品日日摸夜夜添夜夜av| 九九久久综合网站| 亚洲区中文字幕| 日韩美女在线观看一区| 久久久久成人精品| 亚洲人成伊人成综合网久久久| 国产精品美女999| 国产精品爽爽爽爽爽爽在线观看| 亚洲视频免费一区| 中文字幕欧美视频在线| 久久在线免费视频| 九九久久精品一区| 久久男人的天堂| 欧美亚洲成人精品| 欧美极品美女视频网站在线观看免费| 久久99亚洲精品| 91免费的视频在线播放| 在线观看欧美www| 精品国内自产拍在线观看| 日韩高清电影免费观看完整版| 乱亲女秽乱长久久久| 久久久久久久久久久久久久久久久久av| www.xxxx精品| 国产午夜精品一区理论片飘花| 亚洲视频999| 97香蕉超级碰碰久久免费的优势| 日本久久中文字幕| 亚洲女人初尝黑人巨大| 91精品国产一区| 日韩电影中文字幕在线观看| 黑人与娇小精品av专区| 欧美精品在线免费观看| 亚洲第一视频网| 日韩电影中文字幕在线观看| 蜜臀久久99精品久久久久久宅男| 九色成人免费视频| 国产午夜精品一区理论片飘花| 欧美最猛性xxxxx亚洲精品| 亚洲色图国产精品| www高清在线视频日韩欧美| 岛国av一区二区| 91麻豆桃色免费看| 中文字幕一区二区精品| 26uuu另类亚洲欧美日本老年| 亚洲天堂av女优| 日本欧美黄网站| 91在线中文字幕| 国产福利精品av综合导导航| 欧美成人剧情片在线观看| 久久亚洲精品中文字幕冲田杏梨| 国产欧美在线观看| 91av在线播放视频| 777午夜精品福利在线观看| 狠狠操狠狠色综合网| 日韩中文字幕在线免费观看| 欧美疯狂做受xxxx高潮| 国产精品久久久久久久久粉嫩av| 日产日韩在线亚洲欧美| 成人福利视频在线观看| 欧美亚洲日本网站| 国产成人激情视频| 亚洲男人天堂网| 久久91超碰青草是什么| 国产精品视频自在线| 国产精品成人在线| 亚洲色图国产精品| 久久精品国产免费观看| 97超级碰在线看视频免费在线看| 久久精品免费播放| 综合av色偷偷网| 亚洲日本成人网| 亚洲精品理论电影| 欧美成人精品xxx| 国产精品成人品| 久久久电影免费观看完整版| 欧美成人高清视频| 欧美日韩国产麻豆| 亚洲精品美女在线| 亚洲国产高潮在线观看| 国产精品人成电影在线观看| 久久精品一本久久99精品| 在线播放国产一区中文字幕剧情欧美| 欧美激情亚洲自拍| 国产在线98福利播放视频| 精品激情国产视频| 久久久国产精品亚洲一区| 久久精品国产91精品亚洲| 综合av色偷偷网| 国产精品爽爽ⅴa在线观看| 成人午夜激情免费视频| 中文字幕亚洲综合久久筱田步美| 成人中心免费视频| 亚洲天堂网在线观看| 日韩高清电影免费观看完整| 日韩高清不卡av| 久久人人看视频| 国产精品久久久久久久久久久久久久| 尤物九九久久国产精品的分类| 久久精品色欧美aⅴ一区二区|