angularjs - 由于 : Error: [$injector:unpr] http://errors. ,无法实例化模块 ng angularjs.org/undefined/$injector/unpr?p0=%24logProvider

标签 angularjs

我创建它是为了装饰 $log:

    window.fofr = window.fofr || {};
window.fofr.library = window.fofr.library || {};
window.fofr.library.logging = window.fofr.library.logging || {};

window.fofr.library.logging.errorLogViewerService = function () {
    var configure = function (angularJsModule) {
        angularJsModule.config(function ($provide) {
            $provide.decorator('$log', function ($delegate, $sniffer) {
                var _error = $delegate.error; // Saving original function
                var _log = $delegate.log;
                $delegate.logs = [];

                $delegate.error = function (msg) {
                    _error(msg);
                };

                $delegate.log = function (msg) {
                    _log(msg);

                    $delegate.logs.push(msg);
                };

                return $delegate;
            });
        });
    };

    return {
        configure: configure
    };
} ();

我使用 qunit 创建单元测试:

    module('Library - Logging - ErrorLogViewer', {
    setup: function () {
        this.app = angular.module('app', []);        
    }
});

test('Log - check the logs is filled with log', function () {
    window.fofr.library.logging.errorLogViewerService.configure(this.app);
    var injector = angular.injector(['app', 'ng']);

    injector.invoke(function ($log) {
        $log.log('test');
        equal($log.hasOwnProperty('logs'), true, 'The property logs must exists');
        equal($log.logs.length, 1, 'The logs must contain one log');
    });
});

但是它在配置中崩溃,说它不知道 logProvider???

最佳答案

好吧,我发现,$log是在ng模块中定义的,模块中的 Angular 搜索是按代码中设置的顺序定义的: angular.injector(['app', 'ng']); 所以我设置了这个 angular.injector(['ng', 'app']);现在可以了!

关于angularjs - 由于 : Error: [$injector:unpr] http://errors. ,无法实例化模块 ng angularjs.org/undefined/$injector/unpr?p0=%24logProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19004640/

相关文章:

angularjs - 从 AngularJS 将文档发布到 SOLR 4

javascript - 将后端快速 session 变量传递给 Angular

angularjs - ng-maxlength 不适用于变量

angularjs - angularjs 中是否默认启用缓存?

javascript - angularjs - ui-router 添加模块

javascript - 在 AngularJS 中深入 $watch 一个集合

javascript - Angular,比较 2 个对象并替换(可能连接?)

javascript - 在 AngularJS 中访问多维字典

javascript - angularJS Controller 函数回调

javascript - 访问 Angular $http