2013-01-11 10 views
35

Ho creato una fabbrica/servizio nella mia app angolare.come eseguire il debug dei servizi angolari nel browser

Voglio eseguire il debug nel browser. C'è un modo in cui posso accedere alla sua istanza e controllare qual è il valore delle sue funzioni e variabili.

La portata angolare può essere raggiunto usando

angular.element(e).scope() 

C'è un modo simile per accedere fabbriche?

risposta

65

Credo che si può usare qualcosa di simile:

angular.element(e).injector().get('serviceName') 

E dal momento che i servizi sono angularjs single, facendo questo su qualsiasi angular.element restituirà sempre la stessa istanza di servizio/oggetto.

+4

+1 Questo è fantastico. Il debug diventa molto più semplice con questo. L'aggiunta di un collegamento alla documentazione angolare migliorerà ulteriormente l'utilità. ref: http://docs.angularjs.org/api/angular.element – rubish

+1

È ancora valido? Stava funzionando bene prima. Ma ora dice "ReferenceError: e non è definito" –

+2

@IvanWang sì, è ancora valido. Appena testato e funziona. Sei sicuro che la variabile 'e' sia definita e accessibile? (Potrebbe essere un problema come [questo] (http://stackoverflow.com/questions/13326351/uncaught-referenceerror-e-is-not-defined)?) – bmleite

8

Iniettare vostro servizio in qualsiasi controller e poi console.log(myService);

Fiddle.

+0

+1 per la risposta – murtaza52

6

Come @bmleite detto, è possibile utilizzare:

angular.element({DOM element}).injector().get('serviceName') 

è possibile selezionare l'elemento DOM voluto (Elementi di uso' 'scheda su Chrome Developper Tools o' HTML 'scheda su Firefox/Firebug) e quindi utilizzare $ 0 per puntare su di esso nella scheda' Console '.

L'elemento più semplice da selezionare è quello su cui è presente la direttiva ngApp. Il codice finale è:

var myService = angular.element($0).injector().get('serviceName'); 

Poi si ha accesso a tutte le sue variabili e funzioni:

myService.getConfig('dev'); 
4

Prova ng-inspect estensione Chrome.

$ get ('serviceName') nella console restituirà il servizio o l'istanza di fabbrica.

+2

ng-inspect è molto più votato di Angular Batarang –

Problemi correlati