2016-07-22 6 views
0

die Winkel developer guide

module.decorator

Diese Funktion Zitiert ist die gleiche wie die Funktion $ provide.decorator außer es durch das Modul API ausgesetzt ist. Dadurch können Sie Ihre Dekorationsmuster von Ihren Modulkonfigurationsblöcken trennen.

Also im Grunde, was ist der Unterschied hier? Gibt es Szenarien, in denen eine Methode gegenüber der anderen bevorzugt wird? Warum nicht immer module.decorator verwenden?

Antwort

1

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) => { ... }); 
Verwandte Themen