Angular - это фреймворк, разработанный Google для создания клиентских (frontend WEB development) приложений. Прежде всего он предназначен для разработки SPA - проектов (Single Page Application), то есть одностраничных приложений. В этом плане Angular является наследником другого фреймворка AngularJS. В то же время Angular, начиная с версии 2, это не новая версия AngularJS, а принципиально новый фреймворк.
Последняя версия Angular на момент написания - Angular 6. Официальный репозиторий фреймворка на гитхаб: https://github.com/angular/angular.
Одной из ключевых особенностей Angular является то, что он использует в качестве языка программирования TypeScript. Можно писать приложения на Angular с помощью таких языков как Dart, ECMAScript или JavaScript. TypeScript является основным языком для Angular.
Язык TypeScript - это надмножество языка ECMAScript 6 (также известной как ECMAScript 2015, ES2015), которое компилируется в обычный код на JavaScript (ES5) и широко поддерживается современными ОС.На настоящий момент браузеры не имеют встроенной поддержки ни TypeScript, ни ECMAScript 6, поэтому для публикации на сервеере код должен быть преобразован в код на JavaScript, поддерживаемый всеми браузерами.
https://angular.io/guide/setup#windows
NodeJS ( Node.js® - это среда выполнения для языка JavaScript, построенная на платформе JavaScript V8 для Chrome. https://nodejs.org/en/)
Node.js позволяет запускать JavaScript-код вне браузера.
Чтобы JavaScript код выполнился вне браузера (на backend), он должен быть интерпретирован и выполнен. Именно это и делает Node.js. Для этого он использует движок V8 VM от Google — ту же самую среду исполнения для JavaScript, которую использует браузер Google Chrome.
Скачать установочный пакет для нужной операционной системы и запустить установку, соогласно инструкции.
Так, например, для 32 bit Windows нужен файл: node-v8.9.4-x86.msi . Программа установки NodeJS для Windows одной из опций предлагает поставить также и npn.
(npm - это менеджер пакетов для JavaScript и самый большой реестр программного обеспечения https://www.npmjs.com/)
Если не поставили вместе с NodeJS, то скачать по ссылке https://nodejs.org/en/download/ и поставить дополнительно.
проверить версию
p> npm list strong>получить перечень локально установленны пакетов
npm list -gсписок глобально установленных пакетов
Наиболее популярный инструмент для управления пректами Angular.
https://cli.angular.io/
На github:
https://github.com/angular/angular-cli
Для редактирования проектов на Angular удобно пользоваться, например:
Visual Studio Code
Notepad++
Запустить консоль NodeJS
Перейти в папку с проектами Angular и запустить создание нового - project1 командой:
ng new project1Перейти в папку созданного проекта
cd project1CLI автоматически создаёт начальную структуру папок и файлов проекта.
В папке ./src/app находятся, в частности:
Запустить проект
ng serveили, указав другой порт и директиву открыть сразу проект в браузере:
ng serve --port 3000 --open
Открыть запущенный проект в браузере
http://localhost:4200 (или, соответственно http://localhost:3000)
Редактировать проект
Файлы запущенного проекта можно редактировать в любом редакторе кодов (например: Notepad++). При сохранении изменений проект автоматически перезапускается и в окне браузера сразу отражаются изменения.
Отредактируем файл шаблона корневого компонента нашего приложения (), заменим его на:
Сгенерировать проект для публикации
ng build --prodПроект для публикации (HTML, CSS, JavaScript) по умолчанию создастся в папке dist
Все команды ng (Angular):
Wiki https://github.com/angular/angular-cli/wiki
PDF https://cli.angular.io/reference.pdf
Основной составляющий блок проекта на Angular - компонент.
Создаём компонент с именем comp1 в паке существующего проекта
ng generate component comp1По завершении команды в папке app проекта добавилась папка нашего нового компонента - src/app/comp1.
В файл app.module.ts добавилась строки описания нашего компонента:
По-умолчанию создался компонент с селектором: app-comp1. Используя этот селектор можно добавить новый компонент в наше приложение. Для этого в файле с шаблоном нашего приложения (app.component.html) добавим строки:
Он примет вид:
Шаблон нового компонента находится в его файле с именем:
src\app\comp1\comp1.component.htmlОтредактируем его, вставив строки:
Запустить наше приложение с новым компонентом, проверить работу:
ng serveКомпонет состоит из 3-х секций:
Импортируем из библиотеки '@angular/core' необходимые модули:
Некоторые компоненты могут содержать множество директив import
Декоратор компонента позволяет менять некоторые свойства нашего компонента (метаданные).
Приведённый ниже декоратор задаёт свойства компонента (selector, templateUrl, styleUrls).
selector - имя тега, использование которого инициирует наш компонент.
templateUrl - шаблон HTML (может быть именем файла или встроенным набором HTML - свойство template )
styleUrls - листы стилей (список файлов или встроенный - inline набор описаний стилей - свойство styles )
В директиве export описаны свойства и методы класса-компонента, которые будут доступны другим компонентам приложения
Файл компонента - программа на Typescript :
Создадим новый проект (app-my-first-component) и посмотрим, как работать с шаблонами и стилями.
Параметры templateUrl и styleUrls , заданные в декораторе, определяют путь к внешним файлам, содержащим шаблон.
Параметры template и style описывают встроенный шаблон (соответственно HTML и CSS ). Если необходимо использовать несколько строк для inline описаний, то вместо ограничителя строки - кавычка (') используется ограничитель строки - backtick (`)
Например
Или:
При использовании встроенного многострочного шаблона ограничитель строки - кавычка (') нужно заменить на другой символ - ` (backtick symbol слева сверху на клавиатуре)
Свойства , заданные в описании класса компонента, могут быть вставлены в шаблон с использованием синтаксиса:
{{ИМЯ_СВОЙСТВА}}
Например, если в компоненте описано свойство title :
То в шаблоне может быть использовано {{title}}:
Можно вставлять в шаблон свойства объекта (пример со встроенными - inline - стилями и шаблоном)
Подробнее - Angular components
Структурные директивы отвечают за компоновку HTML - макета. Они формируют или изменяют структуру DOM, как правило, путем добавления, удаления или изменения элементов.
Директива ngFor
Можно в объекте описать массив данных, тогда в шаблон можно вставлять элементы массива или, например, с помощью оператора ngFor пробегать по всему массиву в цикле.
Проход по массиву в цикле