在angular度,如何使用取消$用户事件的间隔,如页面更改?

关于$interval angular度文档是这样说的:

注意:这个服务创build的间隔必须在完成时明确销毁。

但是它并没有解释如何销毁$ interval。

如果例如我有一个指令包含这个代码:

 $interval(function() { for (var i in myArray) { // do domething } }, 5000); 

我怎样才能销毁它,当用户更改页面例如?

每当用户改变页面时,与路由控制器相关的作用域(下面例子中的/page1 )将被发送一个$destroy事件 。 您可以在该事件的侦听器中cancel $interval

 app.config(function ($routeProvider) { $routeProvider.when('/page1', { template: '<div>Page Content</div>', controller: PageController }); // ... }); function PageController($scope, $interval) { var intervalPromise = $interval(function () { /* ... */ }, 5000); $scope.$on('$destroy', function () { $interval.cancel(intervalPromise); }); }