===== Сервисы встроенные в AngularJs ===== ^Название серивса^Описание| |[[angular:angularjs:сервисы:список_встроенных_сервисов#anchorscroll|$anchorScroll]]|Используется для скролла окна браузера до определенного якоря| |$animate|Используется для анимации| |[[angular:angularjs:сервисы:compile|$compile]]|Обрабатывает фрагмент разметки для создания функции которая может генерировать контент| |$controller|Является оберткой над $injector сервисом который инстанциирует контроллеры| |$document|Представляет jqLite объект который содержит DOM объект window.document| |[[angular:angularjs:сервисы:exception|$exceptionHandler]]|Используется для обработки ошибок которые возникают в приложении| |$filter|Используется для создания фильтров| |[[angular:angularjs:сервисы:http|$http]]|Используется для создания и управления AJAX запросами| |$injector|Создает экземпляр AngularJS компонента| |$interpolate|Обрабатывает строку которая содержит выражение привязки для создания функции которая может использоватся для генерации контента| |$interval|Обертка над window.setInterval функцией| |$location|Обертка над объектом location| |$log|Обертка над global console объектом| |$parse|Обрабатывает выражение для создания функции которая может использоватся для генерации контента| |[[angular:angularjs:сервисы:custom_service#использование_метода_provider|$provide]]|Реализует множество методов которые представлены в Module| |$q|Используется для работы с promises| |[[angular:angularjs:сервисы:resource|$resource]]|Предоставляет возможность работы с RESTfull API| |$rootElement|Предоставляет доступ к корневому элоементу DOM| |$rootScope|Предоставляет доступ к корневому scope| |$route|Используется для работы с путями и множеством view| |$routeParams|Предоставляет информацию о URL| |[[angular:angularjs:сервисы:ngsanitize#$sanitize|$sanitize]]|Заменяет небезопасные HTML символы на безопасные| |[[angular:angularjs:сервисы:ngsanitize#$sce|$sce]]|Удаляет опасные элементы и аттрибуты из HTML строки чтобы сделать ее безопасной для отображения| |$swipe|Используется для распознавания гестур| |$timeout|Обертка над window.setTimeout()| |$window|Предоставляет ссылку на DOM объект - window| ====$window==== Предоставляет ссылку на DOM объект - **window**\\ Основная причина почему в AngularJS доступны сервисы для работы с DOM API global objects это юнит тестирование использование сервисов делает тестирование намного проще так как у вас появляется возможность протестировать только тот функционал который вам нужен и вы избавляетесь от проблем с зависимостями DOM API Services ====$document==== Представляет jqLite объект который содержит DOM объект window.document DOM API Services ====$interval и $timeout==== $interval и $timeout сервисы являются обертками над функциями JavaScript window.setInterval() и window.setTimeout() \\ они принимают аргументы: * **fn** функция чье выполнение будет задержано * **delay** количество милисекунд до выполения функции * **count** количество раз когда выполнение функции будет повторятся ($interval), значение по умолчанию 0 и оно означает бесконечное повторение * **invokeApply** когда установлено true(это значение по default) функция будет выполнятся с применением scope.$apply метода

Time

The time is: {{time}}
====$location==== С помощью сервиса $location можно получить доступ к url но только к той ее части которая указана после # например http://mydomain.com/app.html#/citie/london?select=hotels#north \\ нет возможности с помощью этого сервиса изменить весь url так как если выполнится переход по другому url то текущее приложение будет выгружено \\ сервис **$location** содержит методы: * **absUrl()** возвращает полный url * **hash()/hash(target)** возвращает или устанавливает hash секцию url * **host()** возвращает имя хоста (mysite.com) * **path()/path(target)** возвращает или устанавливает path секцию url * **port()** возвращает номер порта (по умолчанию 80) * **protocol()** возвращет protocol (http) * **replace()** все изменения в текущем url заменяются записью из истории * **search()/search(term, param)** возвращает или устанавливает search секцию url * **url()/url(target)** возвращает или устанавливает path, query string, hash так же сервис **$location** содержит несколько событий которые можно использовать для уведомления об изменении url из-за действий пользователя или програмно, обработчики на эти события можно указать используя метод **$on**, обработчик будет получать в качестве аргументов //новый url и старый url// * **$locationChangeStart** генерируется перед изменением url, обработав это событие можно препятствовать изменениям url * **$locationChangeSuccess** генерируется после изменения url

URL

The url is : {{url}}

====$anchorScroll==== **$anchorScroll** сервис выполняет прокрутку документа до того элемента id которого возвращается $location.hash() методом при использовании сервиса **$anchorScroll** не нужно использовать service объект, просто нужно указать dependency когда объект сервиса уже создан он начинает следить за значением свойства hash $location сервиса и прокрутка выполняется автоматически когда значение свойства меняется DOM API Service

URL

This is the top

  • {{item}}

This is the bottom

====$log==== $log Обертка над global console объектом DOM API Service ====$parse==== сервис $parse позволяет превращать angularjs выражения в функции которые могут обрабатывать данные

Result:
{{ :angular:angularjs:сервисы:parse.png |}} ====$interpolate==== Сервис **$interpolate** по своей работе очень похож на $parse основная разница состоит в том что $interpolate работает со строками которые содержат выражения angularjs Expressions

{{ :angular:angularjs:сервисы:interpolate.png |}} ====$compile==== сервис $compile обрабатывает фрагмент html разметки который содержит привязки или выражения angularjs и создает функцию которую далее можно использовать
{{ :angular:angularjs:сервисы:compile.png |}}