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

前端之家收集整理的这篇文章主要介绍了angularjs – 在角度,如何使用取消$间隔用户事件,如页面更改?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Angular documentation约$ interval正在说:

Note: Intervals created by this service must be explicitly destroyed when you are finished with them.

但它不解释如何销毁$ interval。

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

  1. $interval(function() {
  2. for (var i in myArray) {
  3. // do domething
  4. }
  5. },5000);

用户更改页面时,我如何销毁它?

每当用户更改页面时,与路由控制器(在下面的示例中为/ page1)相关联的范围将被发送 a $destroy event.您可以在侦听器中取消该事件的$ interval:
  1. app.config(function ($routeProvider) {
  2. $routeProvider.when('/page1',{
  3. template: '<div>Page Content</div>',controller: PageController
  4. });
  5. // ...
  6. });
  7.  
  8. function PageController($scope,$interval) {
  9. var intervalPromise = $interval(function () { /* ... */ },5000);
  10. $scope.$on('$destroy',function () { $interval.cancel(intervalPromise); });
  11. }

猜你在找的Angularjs相关文章