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 |}}