angularjs - cloak - cómo depurar servicios angulares en el navegador
angular title service (5)
Creé una fábrica / servicio en mi aplicación angular.
Quiero depurarlo en el navegador. ¿Hay alguna manera de que pueda acceder a su instancia y verificar cuál es el valor de sus funciones y variables?
El alcance angular se puede acceder usando
angular.element(e).scope()
¿Hay alguna manera similar de acceder a las fábricas?
Como dijo @bmleite, puedes usar:
angular.element( {DOM element} ).injector().get(''serviceName'')
Puede seleccionar el elemento DOM deseado (use la pestaña ''Elementos'' en Chrome Developper Tools o la pestaña ''HTML'' en Firefox / Firebug) y luego use $ 0 para señalarlo en la pestaña ''Consola''.
El elemento más simple para seleccionar es el que tiene su directiva ngApp. El código final es:
var myService = angular.element($0).injector().get(''serviceName'');
Entonces tienes acceso a todas sus variables y funciones:
myService.getConfig(''dev'');
Creo que puedes usar algo como esto:
angular.element(e).injector().get(''serviceName'')
Y como los servicios de angularjs son singletons , hacer esto en cualquier elemento angular siempre devolverá la misma instancia / objeto de servicio.
Inyecte su servicio en cualquier controlador y luego console.log(myService);
Fiddle .
No estoy seguro de cómo inspecciona los servicios como tales, pero Angular Batarang es una gran extensión de Chrome para la depuración de aplicaciones angulares. Podría ser útil.
https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk
Documentación útil para Batarang:
http://www.c-sharpcorner.com/UploadFile/9c2805/getting-started-with-angularjs-batarang/
Prueba ng-inspect extensión de Chrome.
$ get (''serviceName'') en la consola devolverá el servicio o la instancia de fábrica.