1

我正在使用ngIdle库,正如文档所述,您可以调用某些方法来检查用户的不活动状态,并且我已将它们放在根范围内。

app.run(function($rootScope) {
    $rootScope.$on('IdleTimeout', function() {
        alert('you will be logged out');
    });

    $rootScope.$on('IdleStart', function () {
        alert('test');
    });
});

这些函数永远不会被调用,我认为这可能是一个更多的问题,$rootscope而不是 ngidle 库。

控制台没有任何错误,并且正确包含了ngidle库。有任何想法吗?

4

2 回答 2

0

对我来说ng-idle,使用$rootScope. 但是我浪费了一些时间等待事件触发,直到我认识到配置需要而不是毫秒;)

app.config(function(IdleProvider) {
    // configure Idle settings
    IdleProvider.idle(5); // in seconds!
    IdleProvider.timeout(5); // in seconds!
});
于 2015-07-17T08:53:16.523 回答
0

我也花了一些时间来解决这个问题;根本没有发生任何事件。事实证明,您需要打电话Idle.watch()才能开始计时。

这没有很好的记录;文档不完整,我看到的例子都没有。一切看起来就像您拥有的代码,所以直到我在库的 GitHub 页面上的“入门”部分看到它之前,我无法弄清楚出了什么问题。虽然没有明确提及,但您必须仔细查看。

.run(function(Idle){
    // start watching when the app runs. also starts the Keepalive service by default.
    Idle.watch();
});

然后是第二个问题:一旦您自动注销一次,如果您在不重新加载应用程序的情况下再次登录,它将不再为您的会话计时。您需要Idle.watch()从 Login 方法再次调用以重置计时器并重新开始

于 2015-10-12T09:16:22.670 回答