Подтвердить что ты не робот

Как отлаживать службы angular в браузере

Я создал службу factory/в моем приложении angular.

Я хочу отладить его в браузере. Есть ли способ, которым я могу получить доступ к его экземпляру и проверить, каково значение его функций и переменных.

Доступ к области angular можно с помощью

angular.element(e).scope()

Есть ли аналогичный способ доступа к фабрикам?

4b9b3361

Ответ 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/