簡體   English   中英

無法注入記錄器

[英]Not able to inject logger

app.admin.routes.js

(function () {
        'use strict';

    angular
        .module('app.admin')
        .run(appRun);

    appRun.$inject = ['routeHelper', 'app.core.services.notificationService'];

    function appRun(routeHelper, notificationService) {
        debugger;
        routeHelper.configureRoutes(getRoutes());

        function getRoutes() {
            return [
                {
                    state: 'admin',
                    url: '/admin',
                    templateUrl: 'app/features/admin/admin.html',
                    controller: 'Admin as vm',
                    resolve: {
//                        signalRConnection: function() {
//                            return notificationService.onReady;
//                        }
                    }, 
                    settings: {
                        navigation: {
                            group: "application",
                            label: "Admin",
                            //label: "navigation.admin",
                            icon: "fa-lock",
                            order: 2
                        }
                        //content: '<i class="fa fa-lock"></i> Admin'
                    }
                }
            ];
        }
    }
})();

admin.js

(function () {
        'use strict';

    angular
        .module('app.admin')
        .controller('Admin', Admin);

    Admin.$inject = ['logger'];

    function Admin(logger) {
        /*jshint validthis: true */
        var vm = this;
        vm.title = 'Admin';

        activate();

        function activate() {
            logger.info('Activated Admin View');
        }
    }
})();

adminctrlSpec.js

describe(“ AdminController”,function(){

 var _logger; beforeEach(function() { module("app.admin", function ($provide) { $provide.value('routeHelper', { configureRoutes: function(routes) { } }); $provide.value('app.core.services.notificationService', { signalRConnection: function () { } }); }); }); beforeEach(function () { inject([ 'logger', function (logger) { debugger; } ]); }); it("asd", function() { debugger; }); 

});

我可以在所有其他規格中使用記錄器。 但是無法注入admin.js。

beforeEach(function () {
>         inject([
>             'logger', function (logger) {
>                 debugger;
>             }
>         ]);
>     });

Error: [$injector:unpr] Unknown provider: loggerProvider <- logger
(function () {
    'use strict';

    angular.module('app', [    
        'app.admin',
        'app.modelling',
        'app.layout'
    ]);

})();

問題解決了。我忘記添加beforeEach(function () { module("app"); });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM