AngularJS basics & theory

DevOWL Meetup
DevOWL MeetupDevOWL Meetup
Getting familiar with
AngularJS
by Paul Seleznev
План презентации
В двух словах о SPA(Single page application)
Основные особенности AngularJS
MVC в AngulaJS
Что такое модуль в Angular и как с ним работать
Общее представление о директивах в AngularJS
Создание пользовательских директив
Фильтры
Services
Что такое SPA?
это веб-приложение, которое
выполняется непосредственно на
стороне клиента в Web-браузере
обычно написанное на комбинации из
HTML, JavaScript и CSS
by wikipedia.com
Что такое AngularJS?
JavaScript-фреймворк с открытым исходным кодом,
разрабатываемым Google
Angular JS адаптирует и расширяет традиционный HTML,
чтобы обеспечить двустороннюю привязку данных для
динамического контента, что позволяет автоматически
синхронизировать модель и представление
Ключевые особенности:
- Директивы и фильтры
- Двунаправленное связывание данных(моделей)
- Вид, контроллер, $scope
- Модули и роутинг
AngularJS basics & theory
Какие цели преследовались
при разработки?
Отделение DOM-манипуляции от логики приложения для
улучшения тестируемости кода.
Отношение к тестированию как к важной части разработки.
Сложность тестирования напрямую зависит от
структурированности кода.
Разделение клиентской и серверной стороны, что позволяет
вести разработку параллельно.
Проведение разработчика через весь путь создания
приложения: от проектирования пользовательского
интерфейса, через написание бизнес-логики, к
тестированию.
result
Подключение
библиотеки

Определение блока
за который отвечает
контроллер в HTML
коде(body tag)

Обход массива
пользователей, который
был добавлен ранее в
$scope(li елемент
используется как шаблон
для каждой итерации)

Определение
контроллера в тэге script.
Во все контроллеры
инжектиться
$scope(ViewModel)

$scope виден для
всего блока в HTM
L
коде, за который
отвечает этот
контроллер
MVC in AngularJS
Th
es

am
e

Контроллер, модель и
$scope

Контроллер можно создать двумя
способами:
- как функцию имя которой будет именем
контроллера
- вызовом метода controller у созданного
модуля
Модули в AngularJS
Преимущества
лей
спользования моду
и
Более описательный код
Легче unit-тестирование
Third-party код легче
подключать модулями
Параллельная загрузка
модулей

Объявить модуль с по
мощью
медота module обьект
а angular
Указать в html коде ка
кой блок
будет работать с этим
модулем
Советы по созданию
модулей
Модуль для сервисов
Модуль для директив
Модуль для фильтров
Модуль уровня приложения, зависящий от все
вышеперечисленных
Что такое директивы в
AngularJS?
С помощью директив можно
добавлять новое поведение
существующим HTML
элементам
Основная работа с
манипуляцией DOM-ом
происходит в существующих
или создаваемых вами
директивах
Angular нахожит директивы в
аттрибутах, именах тегов,
комментариях(HTML) или
названиях классов
Создание пользовательских
директив
Как и контроллеры или сервисы, директивы регистрируются в
модуле(вызовом метода directive)
Первый аргумент - это имя создаваемой директивы в
camelCase. Второй - фабрика, создающая объект с
настройками директивы
Фабрика вызывается только один раз для директивы
HTML код директив может быть как inline, так и находиться в
отдельном шаблоне
AngularJS basics & theory
Фильтры
Фильтры изменяют значения выражений
отображаемые пользователю
Могут вызываться из контроллеров, view
или сервисов
Имеют следующий синтаксис - {{ name |
<filterName> }}
Фильтры могут применяться на
результаты предыдущих
фильтров(chaining)
В контроллеры или сервису фильры
передаются так же как и все остальное в
Angular - через DI
Фильтры создаются для отдельных
модулей с помощью метода filter.
AngularJS сервисы
AngularJS сервисы - это синглтоны.
Для использования сервисов
используется Dependency Injection
Сервисы могут использоваться
практически везде(контроллеры, другие
сервисы, директивы и фильтры)
Создаваемый сервис
должен быть частью
модуля
Сервис можно создать
как с помощью Module
API(возовом метода
factory модуля), так и с
помощью сервиса
$provide
в angularJS практически
все это сервисы(если не
директивы :)) - доступ к
window сделан так же
через $window сервис

inline injection
б о!
аси
Сп
Paca-Vaca
www.facebook.co
m/paul.seleznev
1 de 18

Recomendados

Как и зачем мы тестируем UI por
Как и зачем мы тестируем UIКак и зачем мы тестируем UI
Как и зачем мы тестируем UIVyacheslav Lyalkin
14.1K visualizações22 slides
презентация вводного доклада Angular на fronttalks.ru por
презентация вводного доклада Angular на fronttalks.ruпрезентация вводного доклада Angular на fronttalks.ru
презентация вводного доклада Angular на fronttalks.ruIvan Gromov
1.4K visualizações15 slides
CodeFest dirty facts about AngularJS por
CodeFest dirty facts about AngularJSCodeFest dirty facts about AngularJS
CodeFest dirty facts about AngularJSАнтон Плешивцев
1K visualizações43 slides
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений" por
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"
Антон Гордийчук Тема: "AngularJS — продвинутый HTML для web-приложений"Ciklum Minsk
1.7K visualizações42 slides
Лучший frontend-фреймворк, и почему вы его не хотите por
Лучший frontend-фреймворк, и почему вы его не хотитеЛучший frontend-фреймворк, и почему вы его не хотите
Лучший frontend-фреймворк, и почему вы его не хотитеCodeFest
4K visualizações43 slides
Разработка Web-приложений на Angular JS. Архитектурные семинары Softengi por
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiРазработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiSoftengi
2K visualizações33 slides

Mais conteúdo relacionado

Mais procurados

ASP.NET MVC: new era? por
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?Alexander Konduforov
1.6K visualizações20 slides
AngularJS2 vs VueJS2 (ru) por
AngularJS2 vs VueJS2 (ru)AngularJS2 vs VueJS2 (ru)
AngularJS2 vs VueJS2 (ru)chaykaborya
256 visualizações25 slides
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver por
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverТестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverAlex Mikitenko
752 visualizações30 slides
Средства разработки web приложений (Web frameworks) por
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)Fedor Malyshkin
1K visualizações53 slides
Mobile Automation based on Appium por
Mobile Automation based on AppiumMobile Automation based on Appium
Mobile Automation based on AppiumAnton Sirota
485 visualizações19 slides
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн... por
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...COMAQA.BY
583 visualizações22 slides

Mais procurados(20)

ASP.NET MVC: new era? por Alexander Konduforov
ASP.NET MVC: new era?ASP.NET MVC: new era?
ASP.NET MVC: new era?
Alexander Konduforov1.6K visualizações
AngularJS2 vs VueJS2 (ru) por chaykaborya
AngularJS2 vs VueJS2 (ru)AngularJS2 vs VueJS2 (ru)
AngularJS2 vs VueJS2 (ru)
chaykaborya256 visualizações
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver por Alex Mikitenko
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir WebdriverТестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Тестирование web-приложений на базе технологий Ruby/Cucumber/Watir Webdriver
Alex Mikitenko752 visualizações
Средства разработки web приложений (Web frameworks) por Fedor Malyshkin
Средства разработки web приложений
(Web frameworks)Средства разработки web приложений
(Web frameworks)
Средства разработки web приложений (Web frameworks)
Fedor Malyshkin1K visualizações
Mobile Automation based on Appium por Anton Sirota
Mobile Automation based on AppiumMobile Automation based on Appium
Mobile Automation based on Appium
Anton Sirota485 visualizações
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн... por COMAQA.BY
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
COMAQA.BY 583 visualizações
Антон Валюх - Использование паттерна Mvvm в android por DataArt
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в android
DataArt2.4K visualizações
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings por COMAQA.BY
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindingsSelenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
Selenide –  лаконичные тесты на Selenium 2 WebDriver + Java bindings
COMAQA.BY 1.9K visualizações
Реактивный фронтенд фреймворк для людей (Константин Комелин) por DrupalYug
Реактивный фронтенд фреймворк для людей (Константин Комелин)Реактивный фронтенд фреймворк для людей (Константин Комелин)
Реактивный фронтенд фреймворк для людей (Константин Комелин)
DrupalYug297 visualizações
Способы оптимизации ручного тестирования веб-сайтов в мобильных браузерах por SQALab
Способы оптимизации ручного тестирования веб-сайтов в мобильных браузерахСпособы оптимизации ручного тестирования веб-сайтов в мобильных браузерах
Способы оптимизации ручного тестирования веб-сайтов в мобильных браузерах
SQALab1.8K visualizações
Vue.js - реактивный фронтенд фреймворк для людей por Konstantin Komelin
Vue.js - реактивный фронтенд фреймворк для людейVue.js - реактивный фронтенд фреймворк для людей
Vue.js - реактивный фронтенд фреймворк для людей
Konstantin Komelin1.2K visualizações
Appium confet qa por ISsoft
Appium confet qaAppium confet qa
Appium confet qa
ISsoft1.4K visualizações
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай... por JSib
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
JSib5.3K visualizações
ASP.NET MVC 3 Anton Vidishchev por Alex Tumanoff
ASP.NET MVC 3 Anton VidishchevASP.NET MVC 3 Anton Vidishchev
ASP.NET MVC 3 Anton Vidishchev
Alex Tumanoff396 visualizações
Angular2 por Sergey Melekhin
Angular2Angular2
Angular2
Sergey Melekhin1.1K visualizações
Андрей Стахиевич - Appium Mobile Automation Tool por QA Club Minsk
Андрей Стахиевич - Appium Mobile Automation ToolАндрей Стахиевич - Appium Mobile Automation Tool
Андрей Стахиевич - Appium Mobile Automation Tool
QA Club Minsk1.7K visualizações
«Как написать свой первый плагин для JIRA», Александр Кузнецов (StiltSoft, Бе... por Mail.ru Group
«Как написать свой первый плагин для JIRA», Александр Кузнецов (StiltSoft, Бе...«Как написать свой первый плагин для JIRA», Александр Кузнецов (StiltSoft, Бе...
«Как написать свой первый плагин для JIRA», Александр Кузнецов (StiltSoft, Бе...
Mail.ru Group4.2K visualizações
Михаил Левин: Автоматизация в мобильном тестировании por Yandex
Михаил Левин: Автоматизация в мобильном тестированииМихаил Левин: Автоматизация в мобильном тестировании
Михаил Левин: Автоматизация в мобильном тестировании
Yandex2.4K visualizações
66 - Spring. Spring и JSF por Roman Brovko
66 - Spring. Spring и JSF66 - Spring. Spring и JSF
66 - Spring. Spring и JSF
Roman Brovko292 visualizações
Selenide por ISsoft
SelenideSelenide
Selenide
ISsoft1.2K visualizações

Destaque

Bootstrap3 basics por
Bootstrap3 basicsBootstrap3 basics
Bootstrap3 basicsDevOWL Meetup
17.4K visualizações16 slides
ECMAScript 5 Features por
ECMAScript 5 FeaturesECMAScript 5 Features
ECMAScript 5 FeaturesDevOWL Meetup
13.5K visualizações22 slides
Async Module Definition via RequireJS por
Async Module Definition via RequireJSAsync Module Definition via RequireJS
Async Module Definition via RequireJSDevOWL Meetup
15.7K visualizações16 slides
devOWL coffee-break por
devOWL coffee-breakdevOWL coffee-break
devOWL coffee-breakDevOWL Meetup
14.4K visualizações19 slides
Testing is coming por
Testing is comingTesting is coming
Testing is comingDevOWL Meetup
4.5K visualizações6 slides
Потоковая репликация PostgreSQL por
Потоковая репликация PostgreSQLПотоковая репликация PostgreSQL
Потоковая репликация PostgreSQLDevOWL Meetup
14.4K visualizações12 slides

Destaque(20)

Bootstrap3 basics por DevOWL Meetup
Bootstrap3 basicsBootstrap3 basics
Bootstrap3 basics
DevOWL Meetup17.4K visualizações
ECMAScript 5 Features por DevOWL Meetup
ECMAScript 5 FeaturesECMAScript 5 Features
ECMAScript 5 Features
DevOWL Meetup13.5K visualizações
Async Module Definition via RequireJS por DevOWL Meetup
Async Module Definition via RequireJSAsync Module Definition via RequireJS
Async Module Definition via RequireJS
DevOWL Meetup15.7K visualizações
devOWL coffee-break por DevOWL Meetup
devOWL coffee-breakdevOWL coffee-break
devOWL coffee-break
DevOWL Meetup14.4K visualizações
Testing is coming por DevOWL Meetup
Testing is comingTesting is coming
Testing is coming
DevOWL Meetup4.5K visualizações
Потоковая репликация PostgreSQL por DevOWL Meetup
Потоковая репликация PostgreSQLПотоковая репликация PostgreSQL
Потоковая репликация PostgreSQL
DevOWL Meetup14.4K visualizações
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js por DevOWL Meetup
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.jsTrainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js
DevOWL Meetup4.6K visualizações
HR VS DEV por DevOWL Meetup
HR VS DEVHR VS DEV
HR VS DEV
DevOWL Meetup4.2K visualizações
Lucene in Action por DevOWL Meetup
Lucene in ActionLucene in Action
Lucene in Action
DevOWL Meetup13K visualizações
Database reverse engineering por DevOWL Meetup
Database reverse engineeringDatabase reverse engineering
Database reverse engineering
DevOWL Meetup10.5K visualizações
SEO basics for developers por DevOWL Meetup
SEO basics for developersSEO basics for developers
SEO basics for developers
DevOWL Meetup4.8K visualizações
Startup tactics for developers: A, B, C por DevOWL Meetup
Startup tactics for developers: A, B, CStartup tactics for developers: A, B, C
Startup tactics for developers: A, B, C
DevOWL Meetup4.6K visualizações
Easily create apps using Phonegap por DevOWL Meetup
Easily create apps using PhonegapEasily create apps using Phonegap
Easily create apps using Phonegap
DevOWL Meetup9.5K visualizações
Miscosoft Singularity - konkurs presentation por Vasilii Diachenko
Miscosoft Singularity - konkurs presentationMiscosoft Singularity - konkurs presentation
Miscosoft Singularity - konkurs presentation
Vasilii Diachenko50.1K visualizações
Reactивная тяга por Vitebsk Miniq
Reactивная тягаReactивная тяга
Reactивная тяга
Vitebsk Miniq231 visualizações
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi por Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead SoftengiКак оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Softengi 3.2K visualizações
ORM2Pwn: Exploiting injections in Hibernate ORM por Mikhail Egorov
ORM2Pwn: Exploiting injections in Hibernate ORMORM2Pwn: Exploiting injections in Hibernate ORM
ORM2Pwn: Exploiting injections in Hibernate ORM
Mikhail Egorov42.3K visualizações
CQRS and EventSourcing por DevOWL Meetup
CQRS and EventSourcingCQRS and EventSourcing
CQRS and EventSourcing
DevOWL Meetup139 visualizações
Что такое современная Frontend разработка por DevOWL Meetup
Что такое современная Frontend разработкаЧто такое современная Frontend разработка
Что такое современная Frontend разработка
DevOWL Meetup189 visualizações
How to Lean por Jake Causby
How to LeanHow to Lean
How to Lean
Jake Causby13.8K visualizações

Similar a AngularJS basics & theory

ASP.NET MVC por
ASP.NET MVCASP.NET MVC
ASP.NET MVCGetDev.NET
784 visualizações21 slides
django.pdf por
django.pdfdjango.pdf
django.pdfAntonPolovnikov1
5 visualizações8 slides
Django por
DjangoDjango
DjangoPolinaPolovnikova
20 visualizações8 slides
Шаблоны проектирования в Magento por
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
2.3K visualizações25 slides
C# Web. Занятие 09. por
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.Igor Shkulipa
1.6K visualizações60 slides
ASP.NET, MVC, ASP.NET MVC por
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
2.6K visualizações29 slides

Similar a AngularJS basics & theory(20)

ASP.NET MVC por GetDev.NET
ASP.NET MVCASP.NET MVC
ASP.NET MVC
GetDev.NET784 visualizações
Шаблоны проектирования в Magento por Pavel Usachev
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
Pavel Usachev2.3K visualizações
C# Web. Занятие 09. por Igor Shkulipa
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa1.6K visualizações
ASP.NET, MVC, ASP.NET MVC por GetDev.NET
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET2.6K visualizações
Backbone lesson 1 por Mihail Skida
Backbone lesson 1Backbone lesson 1
Backbone lesson 1
Mihail Skida1.4K visualizações
C# Web. Занятие 16. por Igor Shkulipa
C# Web. Занятие 16.C# Web. Занятие 16.
C# Web. Занятие 16.
Igor Shkulipa376 visualizações
Joomla (Админка) www.hotwebstudio.ru por hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
hotwebstudio.ru 520 visualizações
Паттерны проектирования por ITCP Community
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community131 visualizações
Кирилл Маурин «Проектирование и разработка модульных приложений» por Yulia Tsisyk
Кирилл Маурин «Проектирование и разработка модульных приложений» Кирилл Маурин «Проектирование и разработка модульных приложений»
Кирилл Маурин «Проектирование и разработка модульных приложений»
Yulia Tsisyk417 visualizações
Кирилл Маурин «Проектирование и разработка модульных приложений» por MskDotNet Community
Кирилл Маурин «Проектирование и разработка модульных приложений»Кирилл Маурин «Проектирование и разработка модульных приложений»
Кирилл Маурин «Проектирование и разработка модульных приложений»
MskDotNet Community232 visualizações
Стандарты и соглашения в сложных ООП-приложениях por Magecom Ukraine
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
Magecom Ukraine539 visualizações
Web application framework por Viktor Chukhantsev
Web application frameworkWeb application framework
Web application framework
Viktor Chukhantsev311 visualizações
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев por Ontico
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир ДупелевRich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев
Ontico707 visualizações
Деплоймент и распространение обновлений для веб-приложений por Magecom Ukraine
Деплоймент и распространение обновлений для веб-приложенийДеплоймент и распространение обновлений для веб-приложений
Деплоймент и распространение обновлений для веб-приложений
Magecom Ukraine638 visualizações
Что нового в Visual Studio 2013 por GetDev.NET
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
GetDev.NET1.7K visualizações
Mvc, mvp and mvvm: A comparison of architectural patterns por Ivan Dyachenko
Mvc, mvp and mvvm: A comparison of architectural patternsMvc, mvp and mvvm: A comparison of architectural patterns
Mvc, mvp and mvvm: A comparison of architectural patterns
Ivan Dyachenko2.6K visualizações
Сложные социальные приложения с помощью JS MVC фреймворков por z-tech
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворков
z-tech751 visualizações

AngularJS basics & theory

  • 2. План презентации В двух словах о SPA(Single page application) Основные особенности AngularJS MVC в AngulaJS Что такое модуль в Angular и как с ним работать Общее представление о директивах в AngularJS Создание пользовательских директив Фильтры Services
  • 3. Что такое SPA? это веб-приложение, которое выполняется непосредственно на стороне клиента в Web-браузере обычно написанное на комбинации из HTML, JavaScript и CSS by wikipedia.com
  • 4. Что такое AngularJS? JavaScript-фреймворк с открытым исходным кодом, разрабатываемым Google Angular JS адаптирует и расширяет традиционный HTML, чтобы обеспечить двустороннюю привязку данных для динамического контента, что позволяет автоматически синхронизировать модель и представление Ключевые особенности: - Директивы и фильтры - Двунаправленное связывание данных(моделей) - Вид, контроллер, $scope - Модули и роутинг
  • 6. Какие цели преследовались при разработки? Отделение DOM-манипуляции от логики приложения для улучшения тестируемости кода. Отношение к тестированию как к важной части разработки. Сложность тестирования напрямую зависит от структурированности кода. Разделение клиентской и серверной стороны, что позволяет вести разработку параллельно. Проведение разработчика через весь путь создания приложения: от проектирования пользовательского интерфейса, через написание бизнес-логики, к тестированию.
  • 7. result Подключение библиотеки Определение блока за который отвечает контроллер в HTML коде(body tag) Обход массива пользователей, который был добавлен ранее в $scope(li елемент используется как шаблон для каждой итерации) Определение контроллера в тэге script. Во все контроллеры инжектиться $scope(ViewModel) $scope виден для всего блока в HTM L коде, за который отвечает этот контроллер
  • 9. Th es am e Контроллер, модель и $scope Контроллер можно создать двумя способами: - как функцию имя которой будет именем контроллера - вызовом метода controller у созданного модуля
  • 10. Модули в AngularJS Преимущества лей спользования моду и Более описательный код Легче unit-тестирование Third-party код легче подключать модулями Параллельная загрузка модулей Объявить модуль с по мощью медота module обьект а angular Указать в html коде ка кой блок будет работать с этим модулем
  • 11. Советы по созданию модулей Модуль для сервисов Модуль для директив Модуль для фильтров Модуль уровня приложения, зависящий от все вышеперечисленных
  • 12. Что такое директивы в AngularJS? С помощью директив можно добавлять новое поведение существующим HTML элементам Основная работа с манипуляцией DOM-ом происходит в существующих или создаваемых вами директивах Angular нахожит директивы в аттрибутах, именах тегов, комментариях(HTML) или названиях классов
  • 13. Создание пользовательских директив Как и контроллеры или сервисы, директивы регистрируются в модуле(вызовом метода directive) Первый аргумент - это имя создаваемой директивы в camelCase. Второй - фабрика, создающая объект с настройками директивы Фабрика вызывается только один раз для директивы HTML код директив может быть как inline, так и находиться в отдельном шаблоне
  • 15. Фильтры Фильтры изменяют значения выражений отображаемые пользователю Могут вызываться из контроллеров, view или сервисов Имеют следующий синтаксис - {{ name | <filterName> }} Фильтры могут применяться на результаты предыдущих фильтров(chaining) В контроллеры или сервису фильры передаются так же как и все остальное в Angular - через DI Фильтры создаются для отдельных модулей с помощью метода filter.
  • 16. AngularJS сервисы AngularJS сервисы - это синглтоны. Для использования сервисов используется Dependency Injection Сервисы могут использоваться практически везде(контроллеры, другие сервисы, директивы и фильтры)
  • 17. Создаваемый сервис должен быть частью модуля Сервис можно создать как с помощью Module API(возовом метода factory модуля), так и с помощью сервиса $provide в angularJS практически все это сервисы(если не директивы :)) - доступ к window сделан так же через $window сервис inline injection