jan*_*a91 4 javascript events setinterval angularjs
我使用 $interval 在第一个控制器中运行某些功能。重定向到第二个控制器后,$interval 注册函数(在第一个控制器中实现)仍在运行。我想在不使用销毁功能的情况下停止 $interval 服务。
注意:此服务创建的时间间隔必须在您完成后显式销毁。特别是当控制器的作用域或指令的元素被销毁时,它们不会自动销毁。您应该考虑到这一点,并确保始终在适当的时候取消间隔。有关如何以及何时执行此操作的更多详细信息,请参见下面的示例。
您可以使用该cancel方法来清理$interval对象。您应该interval在离开控制器时取消。
为此,您需要添加eventListenerover$scope的$destroy事件,您可以做一些清理工作(例如取消间隔对象、取消超时对象)。
代码
var myInterval = $interval(function(){
//your interval code
}, 1000)
//register this listener inside your controller where the interval belongs.
$scope.$on('$destroy', function(){
$interval.cancel(myInterval)
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5062 次 |
| 最近记录: |