我正在使用ngIdle库,并且作为documentation状态,您可以调用某些方法来检查用户是否处于非活动状态,我已将这些方法放在根范围内。
app.run(function($rootScope) {
$rootScope.$on('IdleTimeout', function() {
alert('you will be logged out');
});
$rootScope.$on('IdleStart', function () {
alert('test');
});
});
这些函数永远不会被调用,我认为这可能与$rootscope
而不是ngidle库有关。
控制台中没有任何错误,并且正确包含了ngidle库。任何想法?
答案 0 :(得分:0)
对我来说ng-idle
使用$rootScope
可以正常工作。但我浪费了一些时间等待事件发生,直到我认识到配置需要 秒 而不是毫秒;)
app.config(function(IdleProvider) {
// configure Idle settings
IdleProvider.idle(5); // in seconds!
IdleProvider.timeout(5); // in seconds!
});
答案 1 :(得分:0)
我也花了一些时间与之斗争;没有任何事件发射。事实证明你需要调用Idle.watch()
以便开始计时。
这没有很好的记录;文档是不完整的,我看到的所有例子都没有。所有看起来都像你所拥有的代码,所以在我Getting Started section on the library's GitHub page中看到之前我无法弄清楚出了什么问题。但是没有明确提到,你必须仔细观察。
.run(function(Idle){
// start watching when the app runs. also starts the Keepalive service by default.
Idle.watch();
});
然后第二个问题:一旦你自动注销一次,如果你再次登录而没有重新加载应用程序,它将不再是你的会话时间。您需要再次从登录方式拨打Idle.watch()
到reset the timers and start again。