关于angular JS 中$timeOut 的一些不正常情况下的$destory

最近项目中存在的问题头疼脑热了好一会。

我先简单说明下问题是由,使用$timeOut循环调用的时候由于页面存在异步加载会出现反复执行循环反复调用$timeOut,怎么清除跳出循环都不管用。于是查到了如下方法,可能理解上稍有偏差但是事实证明是管用的。

在angular中,如需使用$timeOut需要通过注入service的方式在控制器中依赖注入这里就不多说了。

function fnTime (x){

    if( x<100 ){

          x--;
          var time = $timeOut( function(){
                fnTime()
         },1000 )

    }else{
        
        return;

    }

}


$scope.$on( '$destory' , function(){

      if( time ){

          $timeOut.cancel( timer );

      }

} )

 

posted @ 2015-12-10 09:33  cench  阅读(578)  评论(0编辑  收藏  举报