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 sur 18

Recommandé

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

Contenu connexe

Tendances

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

Tendances(20)

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

En vedette

Bootstrap3 basics par
Bootstrap3 basicsBootstrap3 basics
Bootstrap3 basicsDevOWL Meetup
17.4K vues16 diapositives
ECMAScript 5 Features par
ECMAScript 5 FeaturesECMAScript 5 Features
ECMAScript 5 FeaturesDevOWL Meetup
13.5K vues22 diapositives
Async Module Definition via RequireJS par
Async Module Definition via RequireJSAsync Module Definition via RequireJS
Async Module Definition via RequireJSDevOWL Meetup
15.7K vues16 diapositives
devOWL coffee-break par
devOWL coffee-breakdevOWL coffee-break
devOWL coffee-breakDevOWL Meetup
14.4K vues19 diapositives
Testing is coming par
Testing is comingTesting is coming
Testing is comingDevOWL Meetup
4.5K vues6 diapositives
Потоковая репликация PostgreSQL par
Потоковая репликация PostgreSQLПотоковая репликация PostgreSQL
Потоковая репликация PostgreSQLDevOWL Meetup
14.4K vues12 diapositives

En vedette(20)

Async Module Definition via RequireJS par DevOWL Meetup
Async Module Definition via RequireJSAsync Module Definition via RequireJS
Async Module Definition via RequireJS
DevOWL Meetup15.7K vues
Потоковая репликация PostgreSQL par DevOWL Meetup
Потоковая репликация PostgreSQLПотоковая репликация PostgreSQL
Потоковая репликация PostgreSQL
DevOWL Meetup14.4K vues
Trainspotting Transporting: RabbitMQ, Akka.NET, Rx, MVI, Cycle.js par 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 vues
Database reverse engineering par DevOWL Meetup
Database reverse engineeringDatabase reverse engineering
Database reverse engineering
DevOWL Meetup10.5K vues
Startup tactics for developers: A, B, C par 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 vues
Easily create apps using Phonegap par DevOWL Meetup
Easily create apps using PhonegapEasily create apps using Phonegap
Easily create apps using Phonegap
DevOWL Meetup9.5K vues
Miscosoft Singularity - konkurs presentation par Vasilii Diachenko
Miscosoft Singularity - konkurs presentationMiscosoft Singularity - konkurs presentation
Miscosoft Singularity - konkurs presentation
Vasilii Diachenko50.1K vues
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi par Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead SoftengiКак оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Softengi 3.2K vues
ORM2Pwn: Exploiting injections in Hibernate ORM par Mikhail Egorov
ORM2Pwn: Exploiting injections in Hibernate ORMORM2Pwn: Exploiting injections in Hibernate ORM
ORM2Pwn: Exploiting injections in Hibernate ORM
Mikhail Egorov42.3K vues
Что такое современная Frontend разработка par DevOWL Meetup
Что такое современная Frontend разработкаЧто такое современная Frontend разработка
Что такое современная Frontend разработка
DevOWL Meetup189 vues

Similaire à AngularJS basics & theory

ASP.NET MVC par
ASP.NET MVCASP.NET MVC
ASP.NET MVCGetDev.NET
784 vues21 diapositives
django.pdf par
django.pdfdjango.pdf
django.pdfAntonPolovnikov1
5 vues8 diapositives
Django par
DjangoDjango
DjangoPolinaPolovnikova
20 vues8 diapositives
Шаблоны проектирования в Magento par
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
2.3K vues25 diapositives
C# Web. Занятие 09. par
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.Igor Shkulipa
1.6K vues60 diapositives
ASP.NET, MVC, ASP.NET MVC par
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCGetDev.NET
2.6K vues29 diapositives

Similaire à AngularJS basics & theory(20)

Шаблоны проектирования в Magento par Pavel Usachev
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
Pavel Usachev2.3K vues
C# Web. Занятие 09. par Igor Shkulipa
C# Web. Занятие 09.C# Web. Занятие 09.
C# Web. Занятие 09.
Igor Shkulipa1.6K vues
ASP.NET, MVC, ASP.NET MVC par GetDev.NET
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET2.6K vues
Joomla (Админка) www.hotwebstudio.ru par hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ruJoomla (Админка) www.hotwebstudio.ru
Joomla (Админка) www.hotwebstudio.ru
hotwebstudio.ru 520 vues
Паттерны проектирования par ITCP Community
Паттерны проектированияПаттерны проектирования
Паттерны проектирования
ITCP Community130 vues
Кирилл Маурин «Проектирование и разработка модульных приложений» par Yulia Tsisyk
Кирилл Маурин «Проектирование и разработка модульных приложений» Кирилл Маурин «Проектирование и разработка модульных приложений»
Кирилл Маурин «Проектирование и разработка модульных приложений»
Yulia Tsisyk417 vues
Кирилл Маурин «Проектирование и разработка модульных приложений» par MskDotNet Community
Кирилл Маурин «Проектирование и разработка модульных приложений»Кирилл Маурин «Проектирование и разработка модульных приложений»
Кирилл Маурин «Проектирование и разработка модульных приложений»
Стандарты и соглашения в сложных ООП-приложениях par Magecom Ukraine
Стандарты и соглашения в сложных ООП-приложенияхСтандарты и соглашения в сложных ООП-приложениях
Стандарты и соглашения в сложных ООП-приложениях
Magecom Ukraine539 vues
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев par Ontico
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир ДупелевRich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев
Rich-client, или Как я перестал боятся и полюбил велосипеды / Владимир Дупелев
Ontico707 vues
Деплоймент и распространение обновлений для веб-приложений par Magecom Ukraine
Деплоймент и распространение обновлений для веб-приложенийДеплоймент и распространение обновлений для веб-приложений
Деплоймент и распространение обновлений для веб-приложений
Magecom Ukraine638 vues
Что нового в Visual Studio 2013 par GetDev.NET
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
GetDev.NET1.7K vues
Mvc, mvp and mvvm: A comparison of architectural patterns par 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 vues
Сложные социальные приложения с помощью JS MVC фреймворков par z-tech
Сложные социальные приложения с помощью JS MVC фреймворковСложные социальные приложения с помощью JS MVC фреймворков
Сложные социальные приложения с помощью JS MVC фреймворков
z-tech751 vues

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