2016-07-30 11 views
0

Ich habe einen einfachen Zähler doRefresh() in einer ionischen/eckigen Anwendung laufen, wie Sie sehen können, ist es mit dem $ Intervall aufrufen, aber wenn ein Benutzer diese Ansicht verlässt. Der Zähler läuft noch. Ich kann es nicht aufhören zu laufen. Ich habe viele Dinge ausprobiert, einschließlich des Codes unten. Bitte helfen Sie. Thnk Sie

$interval(function() { 
    $scope.doRefresh(); 
    console.log("refresh done"); 
}, 3000); 

$scope.$on('$ionicView.enter', function(){ 

$scope.$on("$destroy",function(){ 
    if (angular.isDefined($scope.doRefresh())) { 
     $interval.cancel($scope.doRefresh()) 
     console.log("Destroyed"); 
    } 
    }); 


}); 

Antwort

0

$interval das Versprechen Sie das Intervall absagen müssen zurückgibt. Siehe den folgenden Code:

var refresher = $interval(function() { 
    $scope.doRefresh(); 
    console.log("refresh done"); 
}, 3000); 

$scope.$on('$ionicView.enter', function(){ 

$scope.$on("$destroy",function(){ 
    //This really wouldn't be needed, as refresher should always be defined. 
    if (angular.isDefined(refresher)) { 
     $interval.cancel(refresher); 
     refresher = undefined; 
     console.log("Destroyed"); 
    } 
    }); 


}); 
+0

Dies gibt eine Reihe von Fehlern zurück. Ich habe mehrere verschiedene Versuche mit diesem Code versucht. nichts hat funktioniert – angularMe

+0

wäre es besser, Intervall basierend auf URL zu stoppen? und würde es nicht ionic view.leave oder so etwas sein? – angularMe

+0

Erklären Sie die Fehler @angularMe – FrankerZ