2016-07-27 33 views
2

我想在控制器中設置一個計時器,如果用戶在1分鐘內沒有點擊任何按鈕或輸入任何字段,頁面會進入登錄頁面。角度檢測1分鐘無用戶動作

任何想法該怎麼做?

+0

$超時爲你工作嗎? –

+1

@SasankSunkavalli,如何檢測沒有用戶活動?如果有用戶活動,需要復位定時器和啓動定時器再次 –

+1

$超時(函數(){ 如果($ 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

有趣的想法。沒有想到這是檢測用戶活動的一種方法。 但有一點,應用程序可能會有一些部分調用摘要循環,即使沒有任何用戶交互,對吧?例如,'$ timeout'滴答觸發一個摘要循環。 – Chanthu

2

ng-idle是用於檢測和響應空閒用戶的模塊。

一般來說,它示出了一個模態,當它檢測活動和一段如果用戶仍然空閒時間之後,則執行動作(例如:註銷)

有一個角2版本太多:ng-idle2