也许这是一个可怕的想法,但如果是,那么请告诉我为什么然后假装这是一个学术练习,不会在生产中看到光明.
我想为Angular $ injector服务添加一些逻辑,以监视何时将某些服务注入其他服务.由于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;
};
})();
Run Code Online (Sandbox Code Playgroud)
具体错误是:
未捕获错误:[$ injector:modulerr]由于以下原因无法实例化模块应用程序:错误:[$ injector:unpr]未知提供程序:$ injectorProvider
angularjs ×1