У меня есть таймер, который каждые 10 секунд обследует сервер для данных. Однако каждый раз, когда пользователь переключается на другой контроллер, таймер должен быть уничтожен. По какой-то причине это не происходит с моим кодом ниже. Таймер продолжает опрос сервера независимо от того, меняют контроллеры.отмена angularjs таймаут после изменения маршрута не работает
controller.js
$scope.init = function() {
//timer and timer stoper
$scope.counter= 0;
var mytimeout = $timeout($scope.onTimeout, 10000);
$scope.$on('$locationChangeStart', function() {
$timeout.cancel(mytimeout);
});
};
$scope.onTimeout = function() {
//polling server function
$scope.counter++;
var mytimeout = $timeout($scope.onTimeout, 10000);
var increase = 0;
inboxServ.check_newusers().then(function(data) {
if (data == "true") {
$scope.retrieveusers(increase);
}
});
};
отлично. благодаря! – user1424508
Мне повезло ждать события $ detroy, как описано в аналогичном вопросе: https://stackoverflow.com/questions/30938963/how-to-stop-interval-on-leaving-ui-state – Eric