微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

Angular documentation约$ interval正在说:

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

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

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

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

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

每当用户更改页面时,与路由控制器(在下面的示例中为/ page1)相关联的范围将被发送 a $destroy event.您可以在侦听器中取消该事件的$ 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); });
}

原文地址:https://www.jb51.cc/angularjs/145837.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐