angular ng-idle 不工作,未知提供者

angular ng-idle not working, unknown provider

在我的 index.html 中,我将文件包含为

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

并在 app.js

angular.module('app', [ uirouter,
                        routing,
                        angularResource,
                        localStorage,
                        home,
                        activity,
                        'chart.js',
                        'ngAnimate',
                        'rzModule',
                        'ui.bootstrap',
                        jsonService,
                        otherService,
                        customers,
                        'angularUtils.directives.dirPagination',
                        notifications,
                        'textAngular',
                        'ngSanitize',
                        'MassAutoComplete',
                        material,
                        countrySelect,
                        'ngIdle'
                      ])

和配置文件

.config(function(IdleProvider) {
        IdleProvider.idle(5);
        IdleProvider.timeout(5);
    })
    .run(['Idle', function(Idle){
        // start watching when the app runs. also starts the Keepalive service by default.
        Idle.watch();
    }])
    .controller('ctrl', function($scope) {
        $scope.$on('IdleTimeout', function() {
            let time = new Date();
            console.log('idle timeout at ', time);
        });

        $scope.$on('IdleStart', function() {
            let time = new Date();
            console.log('idle start at ', time);
        });
    })

但浏览器总是显示

angular.min.js:117错误:[$injector:unpr] http://errors.angularjs.org/1.5.6/$injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20ctrl

未知提供者:tProvider <- t <- ctrl

t 在这种情况下似乎是 "ctrl" 控制器中对 $scope 的缩小引用。

如果您使用缩小,则需要确保在所有地方Angular's DI annotation ,即

.config(['IdleProvider', function(IdleProvider) {
    // ...
}]).controller('ctrl', ['$scope', function($scope) {
    // ...
}])