2016-10-17 6 views
0

ユーザーが長い時間サーバーにリクエストを送信しなかった後、ログアウトアプリケーションを処理する機能があります(以下のコードではCommonConfig.TIME_OUT_TO_LOGOUTです)。私は変数としてlogOutIntervalを格納するために$ rootScopeを使用します。しかし、もし私が正しい方法として$ rootScopeを使用していれば、それは不思議です。

  • handleSuccessは、リクエスト$ http成功を処理する関数です。

私の悪い英語のために申し訳ありません。

function handleSuccess(response) { 
      $anchorScroll(); // scroll to top after load API completed 
      if ($rootScope.logOutInterval) { 
       console.log("Reupdate count down to logout"); 
       $timeout.cancel($rootScope.logOutInterval); 
       $rootScope.logOutInterval = undefined; 
      } 
      console.log("Start count down to logout at " + new Date()); 
      $rootScope.logOutInterval = $timeout(function() { 
       console.log("Start logout at " + new Date()); 
       $http({ 
        method: 'get', 
        headers: defaultHeader(), 
        url: envConfig.API_HOST + CommonConfig.URI.LOG_OUT 
       }).then(function() { 
        toastr.error("Token has expired"); 
        PageService.logOutAction(); 
       }); 
      }, CommonConfig.TIME_OUT_TO_LOGOUT); 
      return $q.resolve(response); 
     } 
+0

私はあなたが言っていることを得ていますが、それでもあなたが直面している問題は何ですか? – Jigar7521

+0

ご意見ありがとうございます。私はAngularJS初心者だから、$ rootScopeを正しい方法(この状況の場合)として使う方法はわかりません。上記の例では、間違った行為や悪い行為はありますか? $ rootScopeを使わずにこれを行うには他の方法がありますか? もう一度ありがとうございました:) –

+0

[$ rootScopeでデータを保存する](http://stackoverflow.com/questions/38651880/storing-data-in-rootscope) – georgeawg

答えて

2

あなただけのコントローラ、またはコントローラのライフサイクルよりも長生きします何かの間でデータを保存し、共有したい場合は、ベストプラクティスは、そのために使用するサービスです。

サービス内にデータを格納したいだけなら、そのために$ rootScopeを使用する必要はありません。

+0

可能な複製がありました。ご支援いただきありがとうございます。 –

関連する問題