zoukankan      html  css  js  c++  java
  • [AngularJS] $interval

    $interval provides an excellent service for timed operations in your AngularJS apps. It has the advantage over setInterval in "normal" Javascript in that it is aware of Angular's view cycles, as well as being mockable for unit tests. Additionally, it returns a promise and provides a lot of flexibility.

    Read More: https://docs.angularjs.org/api/ng/service/$interval

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <script src="bower_components/angular/angular.min.js"></script>
        <script src="app.js"></script>
    </head>
    <body ng-app="app" ng-controller="AppCtrl as app">
        <button ng-click="app.cancel();">cancel</button>
    </body>
    </html>
    /**
     * Created by Answer1215 on 11/22/2014.
     */
    
    function AppCtrl($q, $interval) {
    
        var vm = this;
        vm.cancel = cancel;
        vm.rejectIt = false;
    
        var timer = $interval(function(){
            vm.rejectIt = !vm.rejectIt;
            doAsync(vm.rejectIt).then(function(data){
                console.log(data.resolveData);
            }, function(error){
                console.log(error.rejectData);
            });
        }, 600, 10); // 600 ms, 10 times
    
        function doAsync(rejectIt){
            return $q(function(resolve, reject){
                    var doneTime = +new Date();
                    console.log(doneTime);
                    if(!rejectIt){
                        resolve({
                            resolveData: 'resolve it at '+doneTime
                        });
                    }else{
                        reject({
                            rejectData: 'reject it at '+doneTime
                        });
                    }
            });
        }
    
        function success() {
            console.log("done");
        }
    
        function error() {
            console.log("cancelled or error");
        }
    
        function notify() {
            console.log("updating");
        }
    
        timer.then(success, error, notify);
    
        function cancel() {
            $interval.cancel(timer);
        }
    }
    
    angular.module('app',[])
        .controller('AppCtrl', AppCtrl);

  • 相关阅读:
    bzoj 4583 购物
    hdu 4694 支配树
    弦图问题初步
    第一次省选总结
    初学kd树
    省选前集训 lca
    bzoj 3282 Tree
    bzoj 2157 旅游
    二分图匹配(匈牙利算法模板)
    最大流(模板)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4114651.html
Copyright © 2011-2022 走看看