Разработка веб-приложений с использованием AngularJS
Покупка
Тематика:
Web-технологии. Web-дизайн
Издательство:
ДМК Пресс
Перевод:
Киселев Артём Николаевич
Год издания: 2023
Кол-во страниц: 395
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-539-8
Артикул: 630733.02.99
Доступ онлайн
В корзину
С появлением HTML5 и CSS3 разработка клиентских веб-приложений на языке JavaScript приобрела особую популярность. Создатели фреймворка AngularJS предприняли революционный подход к решению вопроса превращения браузера в самую лучшую платформу для разработки веб-приложений.
Книга проведет вас через основные этапы конструирования типичного одностраничного веб-приложения. В ней обсуждаются такие темы, как организация структуры приложения, взаимодействие с различными серверными технологиями, безопасность, производительность и развертывание. После представления AngularJS и обзора перспектив клиентских веб-приложений, книга шаг за шагом проведет вас через создание достаточно сложного приложения.
Издание будет наиболее полезно веб-разработчикам, желающим оценить или решившим применить фреймворк AngularJS для создания своих приложений. Предполагается, что читатель имеет некоторое знакомство с AngularJS, хотя бы на уровне понимания простейших примеров. Мы надеемся также, что вы обладаете знанием HTML, CSS и JavaScript.
- Полная коллекция по информатике и вычислительной технике
- Web-технологии. Web-дизайн
- Веб-разработка
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Павел Козловский Питер Бэкон Дарвин Разработка веб-приложений с использованием AngularJS Создавайте одностраничные веб-приложения, реализуя всю мощь AngularJS
Mastering Web Application Development with AngularJS Build single-page web applications using the power of AngularJS Pawel Kozlowski Peter Bacon Darwin BIRMINGHAM - MUMBAI
Разработка веб-приложений с использованием AngularJS Создавайте одностраничные веб-приложения, реализуя всю мощь AngularJS Павел Козловский Питер Бэкон Дарвин Москва, 2023 2-е издание, электронное
УДК 004.738.5:004.4AngularJS ББК 32.973.26-018.2 К59 К59 Козловский, Павел. Разработка веб-приложений с использованием AngularJS / П. Козловский, П. Б. Дарвин ; пер. с англ. А. Н. Киселёва. — 2-е изд., эл. — 1 файл pdf : 395 с. — Москва : ДМК Пресс, 2023. — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-539-8 С появлением HTML5 и CSS3 разработка клиентских веб-приложений на языке JavaScript приобрела особую популярность. Создатели фреймворка AngularJS предприняли революционный подход к решению вопроса превращения браузера в самую лучшую платформу для разработки веб-приложений. Книга проведет вас через основные этапы конструирования типичного одностра- ничного веб-приложения. В ней обсуждаются такие темы, как организация структуры приложения, взаимодействие с различными серверными технологиями, безопасность, производительность и развертывание. После представления AngularJS и обзора перспектив клиентских веб-приложений, книга шаг за шагом проведет вас через создание достаточно сложного приложения. Издание будет наиболее полезно веб-разработчикам, желающим оценить или решившим применить фреймворк AngularJS для создания своих приложений. Предполагается, что читатель имеет некоторое знакомство с AngularJS, хотя бы на уровне понимания простейших примеров. Мы надеемся также, что вы обладаете знанием HTML, CSS и JavaScript. УДК 004.738.5:004.4AngularJS ББК 32.973.26-018.2 Электронное издание на основе печатного издания: Разработка веб-приложений с использованием AngularJS / П. Козловский, П. Б. Дарвин ; пер. с англ. А. Н. Киселёва. — Москва : ДМК Пресс, 2014. — 394 c. — ISBN 978-5-97060-064-1. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-539-8 © 2013 Packt Publishing © Оформление, перевод на русский язык ДМК Пресс, 2014
ОГЛАВЛЕНИЕ Об авторах ...................................................... 11 Благодарности ................................................. 12 О рецензентах.................................................. 14 Предисловие ................................................... 15 О чем рассказывается в этой книге ............................................... 16 Что потребуется при чтении этой книги ......................................... 17 Кому адресована эта книга ............................................................ 18 Соглашения................................................................................... 18 Отзывы и пожелания ..................................................................... 19 Поддержка клиентов ..................................................................... 19 Загружаемые примеры программного кода .......................................... 19 Ошибки и опечатки ............................................................................... 20 Нарушение авторских прав ................................................................... 20 Вопросы ............................................................................................... 20 Глава 1. Дзен Angular ......................................... 21 Знакомьтесь, AngularJS ................................................................. 22 Общие сведения о фреймворке ............................................................ 22 Найдите свой путь в проект ........................................................... 23 Сообщество .......................................................................................... 23 Обучающие ресурсы в Интернете ......................................................... 23 Библиотеки и расширения ............................................................ 24 Инструменты ................................................................................. 24 Batarang ................................................................................................ 24 Plunker и jsFiddle ................................................................................... 25 Расширения и дополнения для IDE ....................................................... 25 Ускоренное введение в AngularJS ................................................. 25 Hello World – пример приложения на AngularJS ..................................... 25 Двунаправленное связывание данных .................................................. 27 Шаблон MVC в AngularJS ............................................................... 27 С высоты птичьего полета ..................................................................... 28 Подробнее о контекстах ........................................................................ 30 Представление ..................................................................................... 37 Модули и внедрение зависимостей ...................................................... 42 AngularJS и остальной мир ............................................................ 56 jQuery и AngularJS ................................................................................. 58 Взгляд в будущее .................................................................................. 59 В заключение ................................................................................ 60
Оглавление Глава 2. Сборка и тестирование .......................... 62 Введение в пример приложения .................................................... 63 Область применения............................................................................. 63 Стек технологий .................................................................................... 65 Хранилище данных ............................................................................... 65 Система сборки ............................................................................ 68 Принципы построения систем сборки ................................................... 69 Инструменты ........................................................................................ 71 Организация файлов и каталогов .................................................. 73 Каталоги верхнего уровня ..................................................................... 74 Каталог с исходным кодом .................................................................... 75 Соглашения по именованию файлов ..................................................... 79 Модули и файлы AngularJS ........................................................... 80 Один файл, один модуль ....................................................................... 80 Внутри модуля ...................................................................................... 81 Автоматическое тестирование ...................................................... 84 Модульные тесты .................................................................................. 86 Интеграционные тесты ......................................................................... 93 В заключение ................................................................................ 97 Глава 3. Взаимодействие с сервером ................... 99 Выполнение запросов XHR и JSONP с помощью $http ................... 99 Модель данных и адреса URL в MongoLab .......................................... 100 Краткий обзор $http ........................................................................... 100 Ограничения политики общего происхождения .................................. 104 Promise API и служба $q ............................................................... 109 Получение отложенных результатов с помощью службы $q ................. 110 Интеграция службы $q в AngularJS ...................................................... 119 Promise API и служба $http ........................................................... 120 Взаимодействие с конечными точками RESTful ........................... 121 Служба $resource ............................................................................... 122 Взаимодействия с веб-службами REST с помощью $http .................... 128 Дополнительные возможности $http ........................................... 132 Обработка ответов .............................................................................. 132 Тестирование кода, осуществляющего взаимодействия с помощью $http .......................................................................... 133 В заключение .............................................................................. 136 Глава 4. Отображение и форматирование данных ... 137 Знакомство с директивами ......................................................... 137 Отображение результатов вычисления выражений ..................... 138 Директива интерполяции .................................................................... 138 Отображение значений с помощью ngBind.......................................... 139 Включение разметки HTML в выражения ............................................. 139 Отображение по условию ............................................................ 141 Включение блоков содержимого по условию ...................................... 142 Отображение коллекций с помощью директивы ngRepeat .......... 143 Знакомство с директивой ngRepeat ................................................... 143 Специальные переменные .................................................................. 144
Оглавление Итерации по свойствам объекта ......................................................... 145 Приемы использования директивы ngRepeat ..................................... 145 Обработчики событий DOM ........................................................ 149 Увеличение эффективности с помощью шаблонов на основе DOM ............................................................................................ 150 Избыточный синтаксис ....................................................................... 150 Применение директивы ngRepeat к множеству элементов DOM ......... 151 Элементы и атрибуты не могут изменяться во время выполнения ....... 152 Нестандартные элементы HTML и старые версии IE ............................ 153 Преобразование моделей с помощью фильтров ......................... 153 Применение встроенных фильтров ..................................................... 154 Создание собственных фильтров – реализация постраничного вывода ................................................................................................ 161 Доступ к фильтрам из кода на JavaScript ............................................ 163 Правила использования фильтров ...................................................... 164 В заключение .............................................................................. 168 Глава 5. Создание улучшенных форм ................. 169 Сравнение традиционных форм с формами AngularJS ............... 169 Введение в директиву ngModel .......................................................... 171 Создание формы с информацией о пользователе ....................... 172 Директивы ввода ......................................................................... 173 Добавление проверки обязательного наличия значения ..................... 174 Текстовые элементы ввода ................................................................. 174 Кнопки-флажки ................................................................................... 175 Радиокнопки ....................................................................................... 175 Элементы выбора из списка ............................................................... 176 Использование скрытых полей ввода ................................................. 181 Устройство механизма связывания данных в ngModel ................ 182 ngModelController ................................................................................ 182 Проверка форм в AngularJS ......................................................... 184 ngFormController ................................................................................. 184 Добавление динамического поведения в форму с информацией о пользователе ................................................... 185 Вывод сообщений об ошибках ............................................................ 186 Отключение процедуры проверки, встроенной в браузер ................... 188 Вложенные формы ...................................................................... 188 Вложенные формы как компоненты многократного пользования ........ 189 Повторение вложенных форм ...................................................... 189 Проверка повторяющихся полей ввода ............................................... 191 Отправка традиционной формы HTML ........................................ 192 Непосредственная отправка форм на сервер ..................................... 192 Обработка события отправки формы .................................................. 193 Сброс формы в исходное состояние ........................................... 194 В заключение .............................................................................. 195 Глава 6. Организация навигации ....................... 196 Адреса URL в одностраничных веб-приложениях ........................ 197
Оглавление Адреса URL с решеткой до появления HTML5 ..................................... 198 HTML5 и интерфейс истории посещений ............................................ 199 Служба $location ......................................................................... 200 Знакомство с интерфейсом службы $location и адресами URL ............ 201 Адреса фрагментов, навигация внутри страницы и $anchorScroll ....... 202 Настройка режима HTML5 интерпретации адресов URL ..................... 203 Навигация вручную с помощью службы $location ................................ 205 Служба $route ............................................................................. 208 Определение основных маршрутов .................................................... 208 Гибкое сопоставление маршрутов ...................................................... 210 Повторное использование шаблонов разметки с разными контроллерами ................................................................................... 212 Предотвращение «мерцания» пользовательского интерфейса при изменении маршрута ................................................................... 213 Предотвращение изменения маршрута .............................................. 215 Ограничения службы $route ........................................................ 216 Один маршрут соответствует одной области на экране ...................... 217 Распространенные приемы использования, советы и рекомендации ......................................................................... 220 Обработка ссылок ............................................................................... 220 Организация определений маршрутов ............................................... 222 В заключение .............................................................................. 224 Глава 7. Безопасность приложений ................... 226 Аутентификация и авторизация на стороне сервера .................... 227 Обработка неавторизованного доступа .............................................. 227 Реализация прикладного интерфейса аутентификации на стороне сервера .............................................................................................. 228 Безопасность шаблонов разметки .............................................. 228 Противостояние нападениям ...................................................... 229 Предотвращение перехвата cookie («атака через посредника») .......... 230 Предотвращение нападений вида «межсайтовый скриптинг» ............. 231 Предотвращение внедрения данных в формате JSON ........................ 233 Предотвращение подделки межсайтовых запросов ........................... 234 Обеспечение безопасности на стороне клиента .......................... 235 Служба security .................................................................................. 236 Отображение формы аутентификации ................................................ 236 Создание меню и панелей инструментов с поддержкой системы безопасности ...................................................................................... 238 Поддержка аутентификации и авторизации на стороне клиента ....240 Обработка ошибок авторизации ......................................................... 241 Перехват ответов ................................................................................ 242 Создание службы securityInterceptor .................................................. 242 Создание службы securityRetryQueue ................................................. 244 Предотвращение переходов по защищенным маршрутам........... 246 Использование функций в свойстве resolve маршрутов ...................... 247 Создание службы authorization ........................................................... 248 В заключение ............................................................................. 250
Оглавление Глава 8. Создание собственных директив ........... 251 Что такое директива AngularJS? .................................................. 251 Встроенные директивы ....................................................................... 252 Использование директив в разметке HTML ......................................... 253 Тестирование директив ............................................................... 255 Определение директивы ............................................................. 257 Оформление кнопок с помощью директив ................................... 258 Создание директивы button ................................................................ 258 Директивы-виджеты .................................................................... 261 Создание директивы постраничного просмотра ................................. 261 Тест для директивы постраничного просмотра списков ...................... 262 Использование шаблонов с разметкой HTML в директивах ................. 263 Изолирование директивы от родительского контекста ....................... 264 Реализация виджета ........................................................................... 267 Добавление в директиву функции обратного вызова selectPage ......... 268 Создание директивы проверки .................................................... 269 Внедрение контроллера другой директивы ......................................... 270 Взаимодействие с контроллером ngModelController ........................... 271 Тестирование директивы проверки ..................................................... 272 Реализация директивы проверки ........................................................ 274 Асинхронная проверка модели .................................................... 275 Имитация службы Users ..................................................................... 275 Тестирование директивы асинхронной проверки ................................ 276 Реализация директивы асинхронной проверки ................................... 278 Директива-обертка для виджета выбора даты из библиотеки jQueryUI ...................................................................................... 279 Тестирование директив-оберток ......................................................... 281 Реализация директивы datepicker ...................................................... 282 В заключение .............................................................................. 283 Глава 9. Создание продвинутых директив ........... 285 Включение .................................................................................. 285 Использование включения в директивах ............................................. 286 Включение в директивах с изолированным контекстом ....................... 286 Директива вывода предупреждения на основе приема включения ...... 286 Контекст включения ............................................................................ 288 Создание и использование функций включения .......................... 291 Создание функции включения с помощью службы $compile ............... 291 Использование функций включения в директивах ............................... 292 Создание директивы if, использующей включение .............................. 294 Контроллеры директив ................................................................ 296 Внедрение специальных зависимостей в контроллеры директив ........ 297 Создание директивы постраничного просмотра на основе контроллера ....................................................................................... 298 Различия между контроллерами директив и функциями связывания .... 299 Комплект директив виджета «аккордеон» ............................................ 301 Управление процессом компиляции ............................................ 305 Создание директивы field ................................................................... 306
Оглавление Использование службы $interpolate .................................................... 308 Динамическая загрузка шаблонов ...................................................... 310 Настройка шаблона директивы field ................................................... 310 В заключение .............................................................................. 312 Глава 10. Создание интернациональных веб-приложений ............................................. 313 Использование национальных наборов символов и настроек ...... 314 Модули с национальными настройками .............................................. 314 Использование доступных национальных настроек ............................. 315 Поддержка переводов ................................................................. 317 Перевод строк в шаблонах AngularJS .................................................. 318 Перевод строк в коде JavaScript .......................................................... 321 Шаблоны проектирования, советы и рекомендации .................... 322 Инициализация приложений с учетом выбранных национальных настроек ............................................................................................. 322 Переключение между национальными настройками ........................... 325 Нестандартное форматирование дат, чисел и валют ........................... 326 В заключение .............................................................................. 328 Глава 11. Создание надежных веб-приложений на основе AngularJS ........................................ 330 Внутренние механизмы AngularJS ............................................... 331 Это не механизм строковых шаблонов ............................................... 331 Настройка производительности – определить требования, измерить, настроить и повторить ................................................ 343 Настройка производительности приложений на основе AngularJS ..... 345 Оптимизация использования процессора ........................................... 346 Оптимизация потреблении памяти ..................................................... 356 Директива ng-repeat ........................................................................... 358 В заключение .............................................................................. 360 Глава 12. Подготовка и развертывание веб-приложений на основе AngularJS ................. 362 Повышение производительности сетевых операций ................... 363 Минификация статических ресурсов ................................................... 363 Предварительная загрузка шаблонов ................................................. 368 Оптимизация начальной страницы .............................................. 373 Избегайте отображения шаблонов в необработанном виде ................ 373 AngularJS и подключение прикладных сценариев................................ 376 Поддержка браузеров ................................................................. 379 Поддержка Internet Explorer ................................................................. 380 В заключение .............................................................................. 381 Предметный указатель .................................... 383
ОБ АВТОРАХ Павел Козловский (Pawel Kozlowski) обладает более чем 15-летним профессиональным опытом веб-разработки и использования самых разных веб-технологий, языков и платформ. Он одинаково хорошо разбирается с особенностями разработки как клиентских, так и серверных компонентов веб-приложений и всегда старается использовать самые производительные инструменты и приемы. Павел является убежденным сторонником свободного, открытого программного обеспечения. Он с большим энтузиазмом участвует в работе над проектом AngularJS и ведет активную деятельность в сообществе пользователей AngularJS. Он также является одним из разработчиков Angular UI – комплекта компонентов, сопутствующего фреймворку AngularJS, где занимается разработкой директив Twitter Bootstrap для AngularJS. В свободное от программирования время Павел занимается популяризацией AngularJS на различных конференциях и встречах. Питер Бэкон Дарвин (Peter Bacon Darwin) занимается программированием уже больше двух десятилетий. Ему довелось работать с фреймворком .NET еще до того, как он был выпущен; Питер принимал участие в разработке IronRuby1 и работал консультантом по информационным технологиям в Avanade и IMGROUP, пока не оставил их, чтобы присматривать за своими детьми и заниматься независимой разработкой. Питер является заметной фигурой в сообществе AngularJS. Он недавно присоединился к команде разработки AngularJS в Google, как внештатный разработчик, и является одним из основателей проекта AngularUI. Он часто выступает с докладами о AngularJS на конференциях Devoxx UK и многочисленных встречах в Лондоне. Он так же ведет учебные курсы в AngularJS. Как консультант, он в первую очередь стремится помочь компаниям наиболее оптимально использовать фреймворк AngularJS. 1 Реализация языка Ruby для .NET. – Прим. перев.
БЛАГОДАРНОСТИ От Павла Козловского Даже не верится, что на протяжении последних месяцев, пока я работал над книгой, мне повезло сотрудничать с такими замечательными людьми. Эта книга едва ли появилась бы на свет без помощи и напряженного труда всех вас. Спасибо вам! В первую очередь я хотел бы сказать «Спасибо!» всем участникам проекта AngularJS в компании Google. Вы – команда мечты, работающая над развитием удивительным фреймворка. Не останавливайтесь на достигнутом! Отдельную благодарность я хочу выразить Бреду Грину (Brad Green), Мишко Хеври (Miško Hevery), Игорю Минару (Igor Minar) и Войту Джину (Vojta Jína). Спасибо Бреду, что свел меня и Питера с издателем и побудил нас написать эту книгу. Спасибо Мишко за рецензирование нашей книги и за проявленное долготерпение, когда мы приставали с глупыми расспросами об AngularJS. Спасибо Игорю за неустанную поддержку и бесконечный поток советов, которые помогли сделать эту книгу лучше. Мы получили массу удовольствия от работы с вами! Я хотел бы также выразить свою благодарность всему сообществу пользователей AngularJS, особенно тем, кто активно помогает в списках рассылки и на других форумах. Я не могу перечислить всех вас по именам, но ваши глубокомысленные вопросы служили для нас источником вдохновения при работе над этой книгой. Энергичное и доброжелательное сообщество, стоящее за фреймворком AngularJS, – это одна из причин, почему фреймворк получился таким удачным. Спасибо всем сотрудникам издательства Packt Publishing: Роксане Хамбатта (Rukhsana Khambatta), Даяну Хаймсу (Dayan Hyames) и Аршаду Сопаривала (Arshad Sopariwala). Вы сделали весь процесс создания и публикации книги чрезвычайно легким и гладким. Спасибо вам! Хочу также сказать спасибо моим коллегам из Amadeus, где я вплотную познакомился с разработкой клиентских компонентов веб-приложений. Прежде всего моим руководителям, Бертрану Ла-
порте (Bertrand Laporte) и Бруно Шабри (Bruno Chabrier). Спасибо Бертрану, что ввел меня в мир разработки клиентских компонентов и за поддержку в решении написать эту книгу. Спасибо Бруно, что позволил мне работать неполный рабочий день и сфокусироваться на этом проекте. Спасибо вам обоим за ваше великодушие. Спасибо Юлиану Дескоттсу (Julian Descottes) и Коринн Крич (Corinne Krych) за рецензирование первых рукописей книги и за весьма ценные отзывы. Очень, очень большое спасибо Питеру, согласившемуся стать моим соавтором. Питер, я наслаждался каждой минутой работы с тобой! Я и мечтать не мог о лучшем соавторе. Наконец, и что особенно важно для меня, я хочу поблагодарить мою невесту Аню. Без твоей поддержки и терпения я не смог бы даже приступить к работе над этой книгой. От Питера Бэкона Дарвина Я хочу поблагодарить разработчиков из компании Google, давших нам AngularJS, и особенно тех, с кого все это началось: Мишко Хев- ри (Miško Hevery), Игоря Минара (Igor Minar), Бреда Грина (Brad Green) и Войта Джина (Vojta Jína). Они стали неиссякаемым источником энтузиазма. Спасибо моему соавтору, Павлу, ставшему основной движущей силой. Он придумал структуру этой книги и написал большую ее часть, а еще он – отличный парень, с которым было приятно работать. Спасибо удивительно активному сообществу, сплотившемуся вокруг AngularJS за столь короткое время, и особое спасибо участникам проекта AngularUI. Наконец, я должен сказать, что не смог бы закончить эту книгу без любви и поддержки моей супруги Келин (Kelyn) и моих детей, Лили (Lily) и Захария (Zachary). Благодарности
О РЕЦЕНЗЕНТАХ Стефан Биссон (Stephane Bisson) – работал программистом в консалтинговой компании ThoughtWorks. В настоящее время живет в Торонто (Канада). Участвовал в разработке нескольких полнофун- кциональных веб-приложений для медицинских и финансовых учреждений, и предприятий обрабатывающей промышленности. Мишко Хеври (Miško Hevery) – работал консультантом по внедрению методов гибкой разработки в Google, где отвечал за обучение сотрудников Google методам автоматизации тестирования. Его старания позволили Google чаще выпускать новые версии веб-приложений, с неизменно высоким качеством. Прежде ему приходилось работать в Adobe, Sun Microsystems, Intel и Xerox, где он стал экспертом в разработке веб-приложений с применением таких технологий, как Java, JavaScript, Flex и ActionScript. Мишко активно участвует в жизни сообщества open source и является автором нескольких проектов с открытым исходным кодом, наиболее примечательным из которых является AngularJS (http://angularjs.org). Ли Ховард (Lee Howard) закончил Аппалачский государственный университет (США) по направлению информационных технологий и в настоящее время занимает должность ведущего программиста- аналитика в северо-западном отделении просвещения (Northwest Area Health Education Center) Баптистского медицинского центра Уэйк Форест (Wake Forest Baptist Health Medical Center) в городе Уинстон-Сейлем (Северная Каролина, США). Им было разработано множество различных веб-приложений, упрощающих создание, регистрацию и проведение очных и электронных образовательных курсов для Northwest AHEC. Им также было создано мобильное приложение CreditTrakr для устройств на базе iOS, позволяющее врачам и другим медицинским работникам следить за своим учебным расписанием с помощью мобильных устройств.
ПРЕДИСЛОВИЕ AngularJS – относительно новый фреймворк MVC на JavaScript, но уже нашедший практическое применение. В нем используются новейшие подходы к обработке шаблонов и применяется прием дву- направленного связывания данных, обеспечивающие широчайшие возможности и простоту использования фреймворка. Разработчик постоянно сообщают о существенном сокращении объема кода, необходимого для реализации приложений на основе AngularJS, в сравнении с другими подходами. Фреймворк AngularJS – выдающийся образец инженерной мысли. С сильным упором на тестирование и высокое качество кода, он способствует использованию передового опыта, накопленного всей экосистемой JavaScript. Не удивительно, что многие разработчики, привлеченные высоким качеством кода и новизной технологий, образовали весьма активное и доброжелательное сообщество вокруг AngularJS, способствующее росту популярности фреймворка. С ростом популярности AngularJS, все больше и больше разработчиков будут использовать его в сложных проектах. Но, как это часто бывает, вы вскоре столкнетесь с проблемами, которые не освещены в стандартной документации или в простых примерах, которые можно найти в Интернете. Как и многие другие технологии, фреймворк An- gularJS имеет свой комплекс идиом, шаблонов и приемов, раскрытых сообществом на основе накопленного коллективного опыта. И здесь вам на помощь придет эта книга – она постарается показать вам, как писать нетривиальные приложения на основе фрей- мворка AngularJS. В место описания особенностей работы фрей- мворка, эта книга концентрируется на описании особенностей использования AngularJS в сложных веб-приложениях. Здесь вы найдете ответы на многие вопросы, которые часто задаются в сообществе AngularJS. Проще говоря, эта книга написана разработчиками приложений, для разработчиков приложений, на основе вопросов, часто задаваемых разработчиками приложений. Из этой книги вы узнаете:
Предисловие • как создавать полноценные, надежные приложения с использованием имеющихся служб и директив AngularJS; • как расширять AngularJS (создавать собственные директивы, службы, фильтры), если стандартных его возможностей оказывается недостаточно; • как настраивать проекты приложений на основе AngularJS (организация кода, сборка, тестирование, профилирование). О чем рассказывается в этой книге Глава 1, «Дзен Angular», служит введением в проект и фреймворк An- gularJS. В этой главе вы познакомитесь с философией проекта, основными понятиями и базовыми составляющими. Глава 2, «Сборка и тестирование», закладывает фундамент примера приложения, используемого в качестве иллюстрации на протяжении всей книги. Она знакомит с предметной областью и охватывает такие темы, как сборка и тестирование систем. Глава 3, «Взаимодействие с серверными компонентами», рассказывает, как организовать получение данных со стороны сервера и как эффективно передавать их пользовательскому интерфейсу, действующему под управлением AngularJS. В этой главе детально будет рассматриваться доступный прикладной интерфейс API. Глава 4, «Отображение и форматирование данных», предполагает, что отображаемые данные уже приняты от серверной части веб- приложения, и демонстрирует, как можно организовать отображение этих данных в пользовательском интерфейсе. Здесь обсуждается применение директив AngularJS для отображения пользовательского интерфейса и фильтров для форматирования данных. Глава 5, «Создание сложных форм», иллюстрирует, как дать пользователям возможность манипулировать данными в формах и знакомит с различными типами полей ввода. Она охватывает различные способы ввода, поддерживаемые фреймворком AngularJS, и подробно рассказывает о приемах проверки данных в формах. Глава 6, «Навигация», покажет, как организовать отдельные экраны в приложениях с поддержкой навигации. Глава начинается с описания роли адресов URL в одностраничных веб-приложениях и знакомит читателя с ключевыми службами AngularJS, обеспечивающими управление адресами URL и навигацией.
Доступ онлайн
В корзину