2017-09-23 16 views
-2

私はAPIからいくつかのデータを取得する以下のサービスを持って、それは私が私の問題は、私は私の$scope.getStudentsPage();を呼び出すことができる方法である特定の時間後にAngular jsでapiエンドポイントを呼び出す方法(スケジュールされたタスク)?

// some code... 

$scope.pageStudents; 

    $scope.getStudentsPage = function(){ 

     $http({ 
       method: 'GET', 
       url: 'studentsResource/students' 
      }).then(function successCallback(response) { 

       $scope.pageStudents = response.data; 

       }); 

    }; 


    //i want to call this method every 5 min for example. 
    $scope.getStudentsPage(); 

app.run()メソッドでは、このサービスを呼び出す

正常に動作しますスケジュールされた仕事(javaの石英のような)のような何かが毎回5分後に、角度またはJavaScriptのこの概念をサポートしていますか? この操作を達成する方法については、誰でも教えてください。ありがとうございます。

+0

ます。https:/ /stackoverflow.com/questions/21251688/how-to-call-function-every-2-mins –

+0

[2分ごとに関数を呼び出す方法]の複製が可能です(https:///stackoverflow.com/questions/21251688/how-to-call-function-every-2-mins) –

答えて

1

遅延アクションを1回実行する場合は、角度の$timeoutサービスを使用できます。複数回実行する場合は、$intervalサービスがあります。このような

ので:

$scope.pageStudents; 

$scope.getStudentsPage = function(){ 
    $http({ 
     method: 'GET', 
     url: 'studentsResource/students' 
    }).then(function successCallback(response) { 
     $scope.pageStudents = response.data; 
    }); 
}; 

$interval(function() { 
    $scope.getStudentsPage(); 
}, 300000); // <--- 5 minutes in milliseconds 

プレーンJavaScriptでは、あなたはこれを行うにはwindow.setTimeoutはやwindow.setIntervalを使用します。 angularjsでは、代わりに$ timeoutと$ intervalサービスを使用するべきです。なぜなら、angularjsは変更検出を正しく実行できないからです。 $タイムアウトと$間隔の

ドキュメントがここで見つけることができます:
https://docs.angularjs.org/api/ng/service/$timeout
https://docs.angularjs.org/api/ng/service/$interval

そしてここでのsetTimeoutとのsetIntervalのために:これは、繰り返しチェックです
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout
https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

+0

ok、私はそれをクッキングし、あなたの休息を承認するために、あなたに感謝@ニコラス – James

+0

それはうまく動作します、ありがとう – James

関連する問題