angularjs decorator
$provide.decorator()
$provide.decorator()函數可以接受兩個參數:
-
name(字元串)
将要攔截的服務名稱。
-
decoratorFn(函數)
在服務執行個體化時調用該函數,這個函數由injector.invoke調用,可以将服務注入這個函數中。
$delegate
var githubDecorator = function($delegate, $log) {
var events = function(path) {
var startedAt = new Date();
var events = $delegate.events(path);
// 事件是一個promise
events.finally(function() {
$log.info("Fetching events" +
" took " +
(new Date() - startedAt) + "ms");
});
return events;
};
return {
events: events
};
};
angular.module('myApp')
.config(function($provide) {
$provide.decorator('githubService', githubDecorator);
});