9

我在 AngularJS 控制器中有这样的功能

$timeout($scope.loadPosts, 5000); // pull every 5 seconds

当我离开控制器(到另一个视图)时,如何停止超时并最终销毁控制器,使其不再运行?

4

1 回答 1

18

我能够通过监听 $destroy 事件来解决它,如下所示:

var pull = $timeout($scope.loadPosts, 5000); // pull after 5 seconds

$scope.$on('$destroy', function(){
  $timeout.cancel(pull);
});
于 2013-09-30T10:55:30.787 回答