7

许多其他有类似问题的人,但这些解决方案似乎不适用于我的具体问题。

我正在尝试使用 ngIdle ( https://github.com/HackedByChinese/ng-idle ) 库,但似乎无法在不出现此错误的情况下运行它 - 未捕获的错误:[$injector:modulerr] 无法实例化模块 myAuditModule 由于:错误:[$injector:unpr] 未知提供者:$idleProvider

这是我的模块代码,

(function () {
    app = angular.module("myAuditModule", ['ui.bootstrap', 'ngRoute', 'ngCookies', 'ngDragDrop', 'ngIdle']);

    // configure the routes
    app.config(function ($routeProvider, $idleProvider, $keepaliveProvider) {

        $idleProvider.idleDuration(10 * 60); // 10 minutes idle
        $idleProvider.warningDuration(30); // 30 second warning
        $keepaliveProvider.interval(5 * 60); // 5 minute keep-alive ping

        $routeProvider

             //route for the logging in page
            .when('/', {
                templateUrl: 'Views/Login.html',
                controller: 'loginController'
            })

    });

    })();

该文件已包含在我的项目中,并且在站点运行时在开发人员控制台中显示 -

   <script src="/Scripts/angular-idle.js"></script>

唯一的依赖是您需要使用 angular 1.2 或更高版本,我就是这样。

有任何想法吗?

4

2 回答 2

6

在 app.config 中替换$idleProvider为并尝试IdleProvider

  app.config(function ($routeProvider, IdleProvider, KeepaliveProvider) {

    IdleProvider.idleDuration(10 * 60); // 10 minutes idle
    IdleProvider.warningDuration(30); // 30 second warning
    KeepaliveProvider.interval(5 * 60); // 5 minute keep-alive ping

    .....
});

也替换$keepaliveProviderKeepaliveProvider

于 2015-05-27T16:11:53.143 回答
2

尝试注入IdleProvider而不是$idleProvider同样适用于KeepAliveProvider

所以你的新代码应该是

(function () {
        app = angular.module("myAuditModule", ['ui.bootstrap', 'ngRoute', 'ngCookies', 'ngDragDrop', 'ngIdle']);

        // configure the routes
        app.config(function ($routeProvider, IdleProvider, KeepaliveProvider) {

            $idleProvider.idleDuration(10 * 60); // 10 minutes idle
            $idleProvider.warningDuration(30); // 30 second warning
            $keepaliveProvider.interval(5 * 60); // 5 minute keep-alive ping

            $routeProvider

                 //route for the logging in page
                .when('/', {
                    templateUrl: 'Views/Login.html',
                    controller: 'loginController'
                })

        });

        })();
于 2015-05-27T15:57:43.107 回答