2016-07-27 9 views
2

コントローラにタイマーを設定して、ボタンをクリックしないで1分間入力した場合は、ログインページに移動します。角度検出で1分間のユーザアクションがありません

どうすればいいですか?

+0

$ timeoutはあなたの仕事ですか? –

+1

@SasankSunkavalli、どのようにユーザーの活動が検出されますか?ユーザーアクティビティがある場合は、タイマをリセットして再度タイマーを開始する必要があります。 –

+1

$ timeout(function(){ if($ scope.userActivity == false){ //同じタイムアウトをもう一度呼び出す } }、60000); –

答えて

2

次のようなものを使用することができます

app.run(function($rootScope) { 
    var lastDigestRun = new Date(); 
    $rootScope.$watch(function detectIdle() { 
    var now = new Date(); 
    if (now - lastDigestRun > 1*60*60) { 
     // login here, etc 
    } 
    lastDigestRun = now; 
    }); 
}); 
+0

どのようにユーザーアクションが検出され、ユーザーの操作がある場合は、タイマーをリセットし、再度タイマーを開始する必要があります –

+0

@gotnull detectIdle()は1分後に正確にどのように実行しますか –

+1

興味深い考え。これをユーザーの活動を検出する1つの方法とは考えていない。 しかし、1つのことは、アプリケーションにダイジェストサイクルを呼び出す部分があることがあります。例えば、 '$ timeout' tickはダイジェストサイクルを引き起こします。 – Chanthu

2

ng-idleは検出して、ユーザーをアイドル状態に応答するためのモジュールです。 (:ログアウトなど)

あまりに角度2バージョンがあります:ng-idle2

は、それが非アクティブを検出し、ユーザーがまだアイドル状態の場合、一定期間の後に、それがアクションを実行するとき

一般的には、モーダルを示し

関連する問題