2016-06-23 8 views
2

私は、角度$タイムアウトを使用してapiからデータをリロードし、domにライブ統計を表示します。リロードは非常にうまく動作し、5秒後にリロードします。しかし、問題は、別のタブをクリックした後、$タイムアウトやデータの再読み込みが不要なので、前のページと同じようにデータを読み込んでいます。そのデータはDOMにはありませんが、ネットワークコンソールではまだコードからデータをリロードして、そのデータでhttp get urlを呼び出します。ページ変更後の角度タイムアウトリロード

$scope.reload = function() { 
$http.get(serviceBase + 'live-stats'). 
    success(function (res) { 
     $scope.proizvedeno = res; 
console.log(res); 
     }); 
     $timeout(function(){ 
      $scope.reload(); 
      }, 5000); 
    }; 
      $scope.reload(); 

P.S.私は角ローディングバーを使用していますが、このバーはページの特定の部分だけをリロードすると回転しません。この場合、統計を表示するために「タイムアウト」からデータを取得します。

EDIT: i addこの本CTRL私は唯一の "VaRのリロード"

var reload = $timeout(function(){ 
      $scope.reload(); 
      }, 5000); 
      $scope.$on('$destroy', function(){ 
$timeout.cancel(reload); 

を})宣言する必要があり

$scope.reload = function() { 
$http.get(serviceBase + 'live-stats'). 
    success(function (res) { 
     $scope.proizvedeno = res; 
console.log(res); 
     }); 
     $timeout(function(){ 
      $scope.reload(); 
      }, 5000); 
$scope.$on('$destroy', function(){ //this is what i add 
$timeout.cancel(reload);    //this is what i add 
    }; 
      $scope.reload(); 

それでも

答えて

1

をキャンセルしないでタイムアウトします。

関連する問題