ng-Idle KeepaliveProvider.http .success不是一个函数

时间:2017-03-29 20:28:05

标签: angularjs modal-dialog ng-idle

当我填充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

1 个答案:

答案 0 :(得分:0)

我在这里找到了问题。我通过Nuget包得到了AngularJS 1.6.1。因此,不推荐使用.success和.error。

但是不知何故,我得到了使用.success的ng-Ilde版本1.2.2的旧版本。需要下载最新版本的ng-Idle。