Module.decorator
wurde als Abkürzung für $provide.decorator
in 1.4 eingeführt. $provide.decorator
kann weiterhin für Abwärtskompatibilität verwendet werden.
Die offensichtliche Eigenschaft $provide
Methoden ist, dass Funktionsumfang Zugriff auf beiden Anbieter und Instanz-Injektoren hat:
app.config(($provide, $compileProvider) => {
$provide.decorator('linkService', ($delegate) => {
$compileProvider.aHrefSanitizationWhitelist(...);
return $delegate;
});
Weniger offensichtlich, aber immer noch wichtige Eigenschaft $provide
Methoden ist, dass sie die Anwendung nach der Konfigurationsphase beeinflussen, während Modul Methoden nicht, dies schafft die Möglichkeiten für Lazy Loading und andere undokumentierte, aber potenziell vorteilhafte Techniken:
app.config(($provide) => {
$provide.value('$provide', $provide));
});
app.run(($provide) => {
// app.decorator('service', ...) will do nothing here
$provide.decorator('service', ...);
});
app.run((service) => { ... });