Angular, UI-маршрутизатор. Используя $interval в контроллере такого состояния:
$scope.Timer = null;
$scope.startTimer = function () {
$scope.Timer = $interval($scope.Foo, 30000);
};
$scope.stopTimer = function () {
if (angular.isDefined($scope.Timer)) {
$interval.cancel($scope.Timer);
}
};
Проблема? Таймер сохраняется после выхода из состояния. Мое понимание заключалось в том, что $scope и контроллер по существу "уничтожаются", когда остается состояние. Итак, на основании этого таймер должен остановиться (внутри контроллера я отменяю таймер при перемещении, который работает, но он сохраняется, если я перехожу в состояние diff). Что я не понимаю здесь?
Я предполагаю, что с интервалом и таймаутом services в angular, они доступны повсюду, но я до сих пор не понимаю, как они видят функции в неинициализированном контроллере, если он не скопирован. Является ли мое решение просто использовать обычный добрый интервал js?