当我填充KeepaliveProvider.http(...)时,我正在使用ng-Idle并收到错误。在大多数情况下,我使用的代码直接来自此处给出的示例http://hackedbychinese.github.io/ng-idle/
这是我的控制器:
function timeoutCtrl(modelData, $scope, Idle, $log, $uibModal) {
var vm = this;
vm.config = {};
(function () {
vm.config = modelData;
Idle.watch();
}());
function closeModals() {
if (vm.warning) {
vm.warning.close();
vm.warning = null;
}
}
$scope.$on('IdleStart', function () {
$log.debug('IdleStart');
closeModals();
vm.warning = $uibModal.open({
templateUrl: 'timeout-warning-dialog.html',
controller: 'TimeoutWarningController as timeoutWarning'
});
});
$scope.$on('IdleEnd', function () {
$log.debug('IdleEnd');
closeModals();
});
$scope.$on('IdleTimeout', function () {
$log.debug('IdleTimeout');
window.location = '/Session/Timeout/' + vm.config.paxCode;
});
}
app.controller('TimeoutController', ['modelData', '$scope', 'Idle', '$log', '$uibModal', timeoutCtrl])
.config(['timeoutData', 'IdleProvider', 'KeepaliveProvider', function (timeoutData, IdleProvider, KeepaliveProvider) {
IdleProvider.idle(timeoutData.timeoutIdleSeconds);
IdleProvider.timeout(timeoutData.timeoutWarningSeconds);
KeepaliveProvider.interval(timeoutData.keepAliveSeconds);
KeepaliveProvider.http('/api/session/keepalive');
}]);
但是在IdleStart打开模态对话框后,任何鼠标移动都会导致此错误: enter image description here
$ http(...)。成功不是一个功能
如果我注释掉设置KeepaliveProvider.http(...)的行,则不会发生错误。但是我的服务器会话也没有活着。
我已经用Google搜索了这个,大多数示例都没有设置KeepaliveProvider.http(...)。那些做的事情正在做我正在做的事情。是否有一些必须完成的配置不在示例中?
我正在使用ng-Idle 1.2.2
答案 0 :(得分:0)
我在这里找到了问题。我通过Nuget包得到了AngularJS 1.6.1。因此,不推荐使用.success和.error。
但是不知何故,我得到了使用.success的ng-Ilde版本1.2.2的旧版本。需要下载最新版本的ng-Idle。