AngularJS(十七) 定时器

intervalwindow.setIntervalAngular i n t e r v a l 是 w i n d o w . s e t I n t e r v a l 的 A n g u l a r 包 装 形 式 。 interval指每次延迟时间后执行响应的函数(也可以说:每次执行函数的间隔时间)。 intervalcontrollerdirective i n t e r v a l 多 数 用 于 计 时 器 备 注 : 当 你 执 行 完 这 项 服 务 后 应 该 把 它 销 毁 。 特 别 是 当 c o n t r o l l e r 或 者 d i r e c t i v e 元 素 被 销 毁 时 而 interval未被销毁。你应该考虑到在适当的时候取消interval事件。

  $interval   ( fn , delay , [count] , [invokeApply] , [Pass] );
  fn:          一个将被反复执行的函数。
  delay:      每次调用的间隔毫秒数值。
  count:      循环次数的数值,如果没设置,则无限制循环。
  nvokeApply: 如果设置为false,则避开脏值检查,否则将调用$apply。
  Pass:       函数的附加参数。   

timeout函数的返回值是一个promise,当到达设置的超时时间时,这个承诺将被解决,并执行timeout函数。 timeout()timeout t i m e o u t 多 数 用 于 事 件 延 迟 ( 延 迟 多 长 时 间 后 , 处 理 什 么 事 情 ) 如 果 想 要 取 消 t i m e o u t , 需 要 调 用 timeout.cancel(promise);

 $timeout(  fn , [delay] , [invokeApply] );
          fn:一个将被延迟执行的函数。
          delay:延迟的时间(毫秒)。
          invokeApply:如果设置为false,则跳过脏值检测,否则将调用$apply。

HTML

<!DOCTYPE html>  
<html>  
<meta charset="utf-8">  
<script src="js/angular.min.js" type="text/javascript"></script>  
<script src="js/interval1.js"></script>  
<style>  
    button{  
        padding:10px;  
        border:none;  
        border-radius: 5px;  
        background: deepskyblue;  
        color: #ffffff;  
    }  
</style>  
<body>  
<div ng-app="myApp" ng-controller="myCtrl">  
    <button  class="button gettestcode col-40" ng-click="getTestCode()"  
             ng-bind="description" ng-disabled="canClick">  
      </button>  
</div>  
</body>  
</html>  

AngularJS

var app = angular.module('myApp', []);  
app.controller('myCtrl', function($scope,$interval) {  
    $scope.canClick=false;  
    $scope.description = "获取验证码";  
    var second=59;  
    var timerHandler;  
    $scope.getTestCode = function(){  
        timerHandler =$interval(function(){  
            if(second<=0){  
                $interval.cancel(timerHandler);    //当执行的时间59s,结束时,取消定时器 ,cancle方法取消   
                second=59;  
                $scope.description="获取验证码";  
                $scope.canClick=false;    //因为 ng-disabled属于布尔值,设置按钮可以点击,可点击发送  
            }else{  
                $scope.description=second+"s后重发";  
                second--;  
                $scope.canClick=true;  
            }  
        },1000)   //每一秒执行一次$interval定时器方法  
    };  
});  
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值