0

私は ng-Idle を使用していて、KeepaliveProvider.http(…) に入力するとエラーが発生します。ほとんどの場合、ここにある例から直接取得したコードを使用しています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 がモーダル ダイアログを開いた後、マウスを動かすと、次のエラーが発生します: ここに画像の説明を入力してください

$http(...).success は関数ではありません

KeepaliveProvider.http(…) を設定する行をコメントアウトすると、エラーは発生しません。しかし、サーバーセッションも維持されません。

私はこれに割り当てをグーグルで検索しましたが、ほとんどの例では KeepaliveProvider.http(…) が設定されていません。そして、そうする人は私がしていることと同じことをしています。例にない、実行する必要がある構成はありますか?

ng-Idle 1.2.2 を使用しています

4

1 に答える 1

0

ここで問題を理解しました。Nuget パッケージ経由で AngularJS 1.6.1 を入手しました。そのため、.success と .error は非推奨です。

しかし、どういうわけか、.success を使用している古いバージョンの ng-Ilde バージョン 1.2.2 を入手しました。ng-Idle の最新バージョンをダウンロードする必要があります。

于 2017-03-30T14:25:58.523 に答える