Angular overview

JavaScript-фреймворк с открытым исходным кодом.

Предназначен для разработки одностраничных приложений.

Его цель — расширение браузерных приложений на основе MVC шаблона, а также упрощение тестирования и разработки.

Фреймворк работает с HTML, содержащим дополнительные пользовательские атрибуты, которые описываются директивами, и связывает ввод или вывод области страницы с моделью, представляющей собой обычные переменные JavaScript. 

Философия Angular

  • AngularJS спроектирован с убеждением, что декларативное программирование лучше всего подходит для построения пользовательских интерфейсов и описания программных компонентов, в то время как императивное программирование отлично подходит для описания бизнес-логики.
  • Фреймворк адаптирует и расширяет традиционный HTML, чтобы обеспечить двустороннюю привязку данных для динамического контента, что позволяет автоматически синхронизировать модель и представление. В результате AngularJS уменьшает роль DOM-манипуляций и улучшает тестируемость.

Двустороннее связывание данных

  • Двустороннее связывание данных в AngularJS является наиболее примечательной особенностью и уменьшает количество кода, освобождая сервер от работы с шаблонами.
  • Шаблоны отображаются как обычный HTML, наполненный данными, содержащимися в области видимости, определенной в модели.
  • Сервис $scope в Angular следит за изменениями в модели и изменяет раздел HTML-выражения в представлении через контроллер. Кроме того, любые изменения в представлении отражаются в модели. Это позволяет обойти необходимость манипулирования DOM и облегчает инициализацию и прототипирование веб-приложений.

Область применения

  • Идеален для Single Page Application (SPA) приложений («богатое» приложение, генерирующее и изменяющее большой объем DOM’а «на лету» без перезагрузки страницы)
  • Код более сложный, но его в разы меньше
  • Никакой привязки к #id и .class для работы с элементами
  • Основные конкуренты: Backbone.js, KnockoutJS, ember.js, React.js

Архитектура

  • Module – модуль – глобальное хранилище для Вашего приложения (контроллеры, роуты, вьюхи)
  • Routes – «менеджер» контроллеров для урлов типа #/someurl
  • Controller – контроллер – логика отдельных частей модуля (приложения)
  • View – представление html контроллера
  • $scope – глобальный объект (со всеми данными) контроллера
  • Directives – кастомное поведение html

Simple example

ToDO list

Полезные ссылки

ТРЕНИРОВОЧНОЕ ЗАДАНИЕ

Создать ToDo list как в прошлом задании используя Angular с директивами

THANKS FOR YOUR ATTENTION

ANGULAR OVERVIEW

Angular overview

By Dima Pikulin

Angular overview

  • 1,127