angularjs basics & theory

18
Getting familiar with AngularJS by Paul Seleznev

Upload: devowl-meetup

Post on 22-May-2015

15.391 views

Category:

Technology


1 download

DESCRIPTION

Краткий обзор фрэймворка AngularJS: что это такое и зачем все эти сложности. И сложности ли это вообще. Презентация подготовлена по материалам прошедшего 19 ноября витебского фронтенд-митапа: http://devowl.org/

TRANSCRIPT

Page 1: AngularJS basics & theory

Getting familiar withAngularJS

by Paul Seleznev

Page 2: AngularJS basics & theory

План презентации

В двух словах о SPA(Single page application)

Основные особенности AngularJS

MVC в AngulaJS

Что такое модуль в Angular и как с ним работать

Общее представление о директивах в AngularJS

Создание пользовательских директив

Фильтры

Services

Page 3: AngularJS basics & theory

Что такое SPA?

это веб-приложение, которое выполняется непосредственно на стороне клиента в Web-браузере

обычно написанное на комбинации из HTML, JavaScript и CSS

by wikipedia.com

Page 4: AngularJS basics & theory

Что такое AngularJS?

JavaScript-фреймворк с открытым исходным кодом, разрабатываемым Google

Angular JS адаптирует и расширяет традиционный HTML, чтобы обеспечить двустороннюю привязку данных для динамического контента, что позволяет автоматически синхронизировать модель и представление

Ключевые особенности:- Директивы и фильтры- Двунаправленное связывание данных(моделей)- Вид, контроллер, $scope- Модули и роутинг

Page 5: AngularJS basics & theory
Page 6: AngularJS basics & theory

Какие цели преследовались при разработки?

Отделение DOM-манипуляции от логики приложения для улучшения тестируемости кода.

Отношение к тестированию как к важной части разработки. Сложность тестирования напрямую зависит от структурированности кода.

Разделение клиентской и серверной стороны, что позволяет вести разработку параллельно.

Проведение разработчика через весь путь создания приложения: от проектирования пользовательского интерфейса, через написание бизнес-логики, к тестированию.

Page 7: AngularJS basics & theory

Подключение библиотеки

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

коде(body tag)

Обход массива пользователей, который был добавлен ранее в

$scope(li елемент используется как шаблон

для каждой итерации)

result

Определение контроллера в тэге script.

Во все контроллеры инжектиться

$scope(ViewModel)

$scope виден для всего блока в HTML

коде, за который отвечает этот контроллер

Page 8: AngularJS basics & theory

MVC in AngularJS

Page 9: AngularJS basics & theory

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

Контроллер можно создать двумя способами:- как функцию имя которой будет именем контроллера- вызовом метода controller у созданного модуля

The same

Page 10: AngularJS basics & theory

Модули в AngularJS

Объявить модуль с помощью медота module обьекта angularУказать в html коде какой блок будет работать с этим модулем

Более описательный код

Легче unit-тестирование

Third-party код легче

подключать модулями

Параллельная загрузка

модулей

Преимущества

использования модулей

Page 11: AngularJS basics & theory

Советы по созданию модулей

Модуль для сервисов

Модуль для директив

Модуль для фильтров

Модуль уровня приложения, зависящий от все вышеперечисленных

Page 12: AngularJS basics & theory

Что такое директивы в AngularJS?

С помощью директив можно добавлять новое поведение существующим HTML элементам

Основная работа с манипуляцией DOM-ом происходит в существующих или создаваемых вами директивах

Angular нахожит директивы в аттрибутах, именах тегов, комментариях(HTML) или названиях классов

Page 13: AngularJS basics & theory

Создание пользовательских

директивКак и контроллеры или сервисы, директивы регистрируются в модуле(вызовом метода directive)

Первый аргумент - это имя создаваемой директивы в camelCase. Второй - фабрика, создающая объект с настройками директивы

Фабрика вызывается только один раз для директивы

HTML код директив может быть как inline, так и находиться в отдельном шаблоне

Page 14: AngularJS basics & theory
Page 15: AngularJS basics & theory

Фильтры

Фильтры изменяют значения выражений отображаемые пользователю

Могут вызываться из контроллеров, view или сервисов

Имеют следующий синтаксис - {{ name | <filterName> }}

Фильтры могут применяться на результаты предыдущих фильтров(chaining)

В контроллеры или сервису фильры передаются так же как и все остальное в Angular - через DI

Фильтры создаются для отдельных модулей с помощью метода filter.

Page 16: AngularJS basics & theory

AngularJS сервисы

AngularJS сервисы - это синглтоны.

Для использования сервисов используется Dependency Injection

Сервисы могут использоваться практически везде(контроллеры, другие сервисы, директивы и фильтры)

Page 17: AngularJS basics & theory

Создаваемый сервис должен быть частью модуля

Сервис можно создать как с помощью Module API(возовом метода factory модуля), так и с помощью сервиса $provide

в angularJS практически все это сервисы(если не директивы :)) - доступ к window сделан так же через $window сервис

inline

injection

Page 18: AngularJS basics & theory

Спасибо!

Paca-Vacawww.facebook.com/paul.seleznev