对于那些不熟悉的人,可以在这里找到 ngIdle 。
这基本上是一种像许多银行在其网站上使用 angular 进行空闲超时的方法。
它工作得很好,但是我目前使用它的方式是在我的控制器中放置一些配置内容。问题是我正在使用多个控制器,并且真的不想在整个项目中复制粘贴这些配置内容。
这是配置的样子:
function closeModals()
{
// Function closes any modals that are currently open (used when coming back from idle)
if ($scope.warning) {
$scope.warning.close();
$scope.warning = null;
}
if ($scope.timedout) {
$scope.timedout.close();
$scope.timedout = null;
}
}
$scope.$on('IdleStart', function () { // What happens when the user goes idle (idle time is defined in app.js IdleProvider config)
closeModals();
$scope.warning = $modal.open({
templateUrl: 'views/timeoutModal.html',
windowClass: 'modal-danger'
});
});
$scope.$on('IdleTimeout', function () { // This is what happens when the user waits passed the warning timer
logout();
closeModals();
Idle.unwatch();
$scope.$apply();
alert("You have been signed out due to inactivity.");
});
$scope.$on('IdleEnd', function () { // What happens when the user comes back from being idle but before they are timed out
closeModals();
$scope.amIdle = false;
});
基本上,我希望能够简单地告诉我的控制器我想要使用这些配置设置,并且它能够使用它们而无需将它们放入控制器中。