Przepraszam za moje dane co 2 sekundy, aby zachować je na bieżąco. Mój problem polega na tym, że gdy odwiedzam kolejną stronę, limit czasu pozostaje aktywny. Jak mogę anulować swój limit czasu po odwiedzeniu nowej strony?
function IndexCtrl($scope, $timeout, RestData) {
$scope.rd = {};
(function getRestDataFromServer() {
RestData.query(function(data){
$scope.rd = data;
$timeout(getRestDataFromServer, 2000);
});
})();
}
// EDIT znalazłem rozwiązanie, ale nie jestem pewien, czy to dobry. Kiedy zapisuję mój limit czasu do $ rootScope, mogę go anulować we wszystkich innych kontrolerach.
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);
}
wypróbowałeś '$ timeout.cancel()'? – Cherniv