如何在严格模式下注入提供程序

时间:2015-06-24 15:31:11

标签: angularjs

我正在尝试运行this示例但是我在exceptionLoggingService提供程序中注入$ exceptionHandler时遇到了困难,因为我处于strictDi = true模式并且出现$exceptionHandler is not using explicit annotation and cannot be invoked in strict mode错误。 一些建议如何在提供者中执行注入?

var loggingModule = angular.module('loggingModule', []);

loggingModule.factory('traceService', function() {
    return ({
        print: printStackTrace
    });
});

loggingModule.provider("$exceptionHandler", {
    $get: function(exceptionLoggingService) {
        return (exceptionLoggingService);
    }
});

loggingModule.factory("exceptionLoggingService", ["$log", "$window", "traceService", 
    function($log, $window, traceService) {
        function error(exception, cause) {
            //
        }
        return (error);
    }
]);

实际上我已经设法以这种方式运行代码,但我确实需要使用上面的示例。

loggingModule.provider('$exceptionHandler', function ExceptionLoggingService() {
    this.$get = ['$log', '$window', 'traceService',
        function($log, $window, traceService) {
            function error(exception, cause) {
                //
            }
            return (error);
        }
    ];
});

1 个答案:

答案 0 :(得分:0)

您是否尝试过在发布链接的错误中描述的明确注释?

loggingModule.provider("$exceptionHandler", {
    $get: ['exceptionLoggingService', function(exceptionLoggingService) {
        return (exceptionLoggingService);
    }]
});