Я опрашиваю свои данные каждые 2 секунды, чтобы они обновлялись на странице. Моя проблема в том, что когда я захожу на другую страницу, тайм-аут остается активным. Как я могу отменить тайм-аут при посещении новой страницы?
function IndexCtrl($scope, $timeout, RestData) {
$scope.rd = {};
(function getRestDataFromServer() {
RestData.query(function(data){
$scope.rd = data;
$timeout(getRestDataFromServer, 2000);
});
})();
}
// РЕДАКТИРОВАТЬ Я нашел решение, но не уверен, что оно хорошее. Когда я сохраняю тайм-аут в $rootScope, я могу отменить его во всех других контроллерах.
function IndexCtrl($scope, $rootScope, $timeout, RestData) {
$scope.rd = {};
(function getRestDataFromServer() {
RestData.query(function(data){
$scope.rd = data;
$rootScope.prom = $timeout(getRestDataFromServer, 2000);
});
})();
}
function newPageCtrl($scope, $rootScope, $timeout) {
$timeout.cancel($rootScope.prom);
}
$timeout.cancel()
? - person Ivan Chernykh   schedule 16.06.2013