Возможно, это ужасная идея, но если это тогда, пожалуйста, скажите мне, почему и затем притворяйтесь, что это академическое упражнение, которое не увидит свет дня в производстве.
Я хотел бы добавить некоторую логику в службу инжектора Angular $, чтобы отслеживать, когда определенные службы вводятся в другие службы. Поскольку кажется, что Angular предоставляет механизм для оформления сервисов, я думал, что это будет путь. Однако следующий код вызывает ошибку.
(function () {
'use strict';
var app = angular.module('app');
app.config(['$provide', function ($provide) {
$provide.decorator('$injector', ['$log', '$delegate', addLoggingToInjector]);
}]);
function addLoggingToInjector($log, $delegate) {
var baseInstantiate = $delegate.instantiate;
var baseInvoke = $delegate.invoke;
$delegate.instantiate = function (type, locals) {
// $log.debug('Calling $injector.instantiate');
baseInstantiate(type, locals);
};
$delegate.invoke = function (fn, self, locals) {
// $log.debug('Calling $injector.invoke');
baseInvoke(fn, self, locals);
};
return $delegate;
};
})();
Конкретная ошибка:
Неподготовленная ошибка: [$ injector: modulerr] Не удалось создать приложение модуля из-за: Ошибка: [$ injector: unpr] Неизвестный поставщик: $injectorProvider