Oltre a angular-logger, stiamo cercando di migliorare $log
, ma vorremmo lavorare nel nome del modulo e del componente angolare senza modifiche. Per fare questo abbiamo bisogno di ottenere i AngularJS contesto in fase di esecuzione, vale a dire, il nome del modulo e regolatore, il servizio o direttiva nomi.Ottieni modulo e controller | service | nome direttiva in fase di esecuzione
app.module("SampleModule").
controller("ControllerOne", function ($log) {
$log.debug("I am ready!")
}).
controller("ControllerTwo", function ($log) {
$log.debug("I am ready!")
});
predefinito $log
uscita:
> I am ready!
> I am ready!
Se siamo in grado di ottenere il nome del modulo e di controllo in fase di esecuzione, quindi utilizzando il migliorato $log
possiamo ottenere un output più ricchi:
> SampleModule.ControllerOne: I am ready!
> SampleModule.ControllerTwo: I am ready!
La migliore l'opzione sarà quella di ottenerlo senza modifiche al codice del controller. Forse c'è modo di ottenere alcune meta informazioni sulle entità che hanno ricevuto l'iniezione della dipendenza $ log?
Qualche suggerimento?
è possibile creare un ng-regolatore di direttiva, che avrebbe eseguito per ogni controller e analizzare il contenuto fornito da NG-controller come stringa e impostarlo su alcune variabili nel punteggio .. e quindi utilizzare tale variabile per la stampa del controller nome – harishr
angolare esegue tutta la direttiva se trova più direttive con lo stesso nome – harishr