2017-03-23 10 views
2

AngularJSのことをやや軽快に理解しています。私は、標準のSpring MVCとAngularJSのミックスであるJavaアプリケーションを継承しています。 AngularJSコントローラの1つが標準のMVCコントローラを呼び出してjsonデータセットを取得します。このコントローラーが、angleJSページのエラーを長引く - おそらくタイムアウトになります。AngularJSコントローラがgetタイムアウトを実行する

私は周りをすばやく見てきましたが、これはおそらく設計上のエラーであると思われます。コントローラでこのコールをさらに実行して$呼び出しを使用する必要がありますが、できるだけ変更を加える必要がありますだから私は、より小さな変化/より良い提案があるかどうかを知ることができると思った。

コントローラ、根性がに.get( "/ dataretrievalendpoint ...)時間がかかりすぎるが(ミリ秒のように思えるし、私のラップトップ上に相当のであれば、基本的にこの

'use strict' 

var pageController = [ 
    '$scope', 
    '$http', 
    '$location', 
    '$window', 
    '$filter', 

    function($scope, $http, $location, $window, $filter) { 

     $.urlParam = function(name){ 
      ... 
      return val; 
     } 

     $http 
     .get(
      "/dataretrievalendpoint?searchparam=" + $.urlParam("searchparam")) 
     .then(
       function(response) { 
        alert("All is well"); 
        .... 
       }, 
       function(response) { 
        alert("Error occurred !"); 
       } 
       ); 
     } 
    ]; 

のようなものです、リッピングと約2000レコード)「エラーが発生しました」、そうでない場合は「すべて正常です」

将来の予定や時間を延長する方法はありますか、何かを調査する必要がありますか

$scope.param.$then = function(){ return make data retrieval call; } 

AngularJS Controller wait for response (or set callback)

また、完全に何か他のことを行う必要がありますか。

答えて

0

$httpInterceptorsを使用して、デフォルトの$ httpタイムアウトを延長することができます。以下のコードを確認してください。

angular.module('myApp') 
.config([ function() { 

    $httpProvider.interceptors.push('timeoutHttpIntercept'); 

}]) 

.factory('timeoutHttpIntercept', [function() { 
    return { 
     'request': function (config) { 
      config.timeout = 200000; 
      return config; 
     } 
    }; 
}]); 

ここでは、デフォルトのhttpタイムアウトを20秒に延長します。ありがとう。

+0

こんにちは私は少し異なった設定をしています。これはうまくいくはずですか?明日の謝罪は、ドキュメントを正しく自分自身で見ていますが、それが明らかであれば私に尋ねると思っていました! ( 'ngRoute'、 'ngSanitize'))。config([function(){ \t $ httpProvider.interceptors.push( ' timeoutHttpIntercept '); \t}])工場(' timeoutHttpIntercept」、[関数(){ \tリターン{ \t '要求':関数(設定){ \t config.timeout = 200000; \t戻りコンフィグ。 \t} \t}; \t}]); – gringogordo

+0

@gringogordo:自分のコードを更新しました。それを見てください。以前私は不必要な "、"私の設定を入れていた。私はそれを修正しました。 .config([、function ..]の "、"を削除してからもう一度やり直してください。 –

関連する問題