Как отлаживать службы angular в браузере
Я создал службу factory/в моем приложении angular.
Я хочу отладить его в браузере. Есть ли способ, которым я могу получить доступ к его экземпляру и проверить, каково значение его функций и переменных.
Доступ к области angular можно с помощью
angular.element(e).scope()
Есть ли аналогичный способ доступа к фабрикам?
Ответы
Ответ 1
Я считаю, вы можете использовать что-то вроде этого:
angular.element(e).injector().get('serviceName')
И поскольку услуги angularjs синглтоны, выполнение этого на любом angular.элементе всегда будет возвращать один и тот же экземпляр/объект службы.
Ответ 2
Внесите свою услугу в любой контроллер, а затем console.log(myService);
Fiddle.
Ответ 3
Как и @bmleite, вы можете использовать:
angular.element( {DOM element} ).injector().get('serviceName')
Вы можете выбрать нужный элемент DOM (используйте вкладку "Элементы" на вкладке "Разработка Chrome" или "HTML" в Firefox/Firebug), а затем используйте $0 для этого на вкладке "Консоль".
Самый простой элемент для выбора - это тот, на котором у вас есть директива ngApp.
Конечный код:
var myService = angular.element($0).injector().get('serviceName');
Затем у вас есть доступ ко всем его переменным и функциям:
myService.getConfig('dev');
Ответ 4
Попробуйте ng-inspect расширение chrome.
$get ('serviceName') в консоли вернет службу или экземпляр factory.
Ответ 5
Я не уверен, как он проверяет службы как таковые, но Angular Batarang - отличное расширение Chrome для отладки Angular приложений. Может быть полезно.
https://chrome.google.com/webstore/detail/angularjs-batarang/ighdmehidhipcmcojjgiloacoafjmpfk
Полезная документация для Batarang:
http://www.c-sharpcorner.com/UploadFile/9c2805/getting-started-with-angularjs-batarang/