angularjs中的$destroy和$timeout

module.controller("TestController", function($scope, $timeout) {
     
    var onTimeout = function() {
        $scope.value += 1;
        timer = $timeout(onTimeout, 1000);
    };
    var timer = $timeout(onTimeout, 1000);
     
    $scope.value = 0;
 
    $scope.$on("$destroy", function() {
        if (timer) {
            $timeout.cancel(timer);
        }
    });
});

 

上面的demo展示了$destroy和$timeout的用法

$destroy用在清理一些资源.比如轮询这些.

$timeout 基于window.timeout的封装 $timeoutAPI

常用方法 var promise = $timeout(onTimeout, 1000); 返回一个promise 对象用于在 $timeout.cancel(promise); 

终止这次timeout 操作;

当在一个页面需要轮询的时候我就可以用到$timeout,当切换到下一个控制器的时候停止当前页面的timeout操作用到$destroy.

posted @ 2017-09-05 14:16  阿力瓦  阅读(372)  评论(0编辑  收藏  举报