gpt4 book ai didi

javascript - 检测angularjs路由 Controller 何时超出范围?

转载 作者:搜寻专家 更新时间:2023-11-01 04:26:01 24 4
gpt4 key购买 nike

我有一个连接到路由的 Controller 。 Controller 使用 $timeout 不断轮询服务器。当路由改变时,我需要停止轮询,并在路由改变回来时重新启动它。

请帮忙。

这是我的代码:

(angular
.module('app.controllers', ['ng', 'ngResource'])
.controller('myContr', [
/******/ '$scope', '$resource', '$timeout',
function ($scope, $resource, $timeout) {
function update() {
$resource('my-service').get({}, function (d) {
// ...use data...
$timeout(update, UPDATE_INTERVAL);
});
};
update();
}
])
);

最佳答案

  • $timeout 的返回值( promise )保存到 $scope 属性中。
  • 在您的作用域上注册一个 $destroy 事件处理程序。
  • 当事件处理程序触发时,在 $timeout promise 上调用 cancel()

当路由变回时, Controller 将被重新创建,因此您现有的代码应该再次启动轮询。

关于javascript - 检测angularjs路由 Controller 何时超出范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17578189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com