меню

Шпаргалка по Angular. Angular — JavaScript-фреймворк с открытым исходным кодом. Предназначен для разработки одностраничных (SPA) приложений. Его цель — расширение браузерных приложений на основе MVC-шаблона, а также упрощение тестирования и разработки.

Bootstrapping

 
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'
  

platformBrowserDynamic().bootstrapModule(AppModule); - Загружает приложение, используя корневой компонент из указанного модуля NgModule.

NgModules

  
import { NgModule } from '@angular/core'
  

@NgModule({ declarations: ..., imports: ..., exports: ..., providers: ..., bootstrap: ...})class MyModule {} - Определяет модуль, который содержит компоненты, директивы, каналы и поставщиков.

declarations: [MyRedComponent, MyBlueComponent, MyDatePipe] - Список компонентов, директив и каналов, которые принадлежат этому модулю.

imports: [BrowserModule, SomeOtherModule] - Список модулей для импорта в этот модуль. Все из импортированных модулей доступно в declarations этого модуля.

exports: [MyRedComponent, MyDatePipe] - Список компонентов, директив и каналов, видимых для модулей, которые импортируют этот модуль.

providers: [MyService, { provide: ... }] - Список поставщиков внедрения зависимостей, видимых как для содержимого этого модуля, так и для импортеров этого модуля.

entryComponents: [SomeComponent, OtherComponent] - Список компонентов, на которые нет ссылок ни в одном доступном шаблоне, например, динамически созданный из кода.

bootstrap: [MyAppComponent] - Список компонентов для начальной загрузки, когда этот модуль загружается.

Синтаксис шаблона

<input [value]="firstName"> - Привязывает свойство value к результату выражения firstName.

<div [attr.role]="myAriaRole"></div> - Привязывает атрибут role к результату выражения myAriaRole.

<div [class.extra-sparkle]="isDelightful"></div> - Связывает наличие дополнительного элемента класса CSS на элементе с правдивостью выражения isDelightful.

<div [style.width.px]="mySize"></div> - Привязывает свойство стиля width к результату выражения mySize в пикселях. Единицы не являются обязательными.

<button (click)="readRainbow($event)"></button> - Вызывает метод readRainbow, когда событие нажатия вызывается для этого элемента кнопки (или его дочерних элементов) и передается в объект события.

<div title="Hello {{ponyName}}"></div> - Связывает свойство с интерполированной строкой, например, «Hello Seabiscuit». Эквивалентно: <div [title]="'Hello' + ponyName"></div>

<p>Hello {{ponyName}}</p> - Привязывает текстовое содержимое к интерполированной строке, например, «Hello Seabiscuit».

<my-cmp [(title)]="name"></my-cmp> - Устанавливает двустороннюю привязку данных. Эквивалентно: <my-cmp [title]="name" (titleChange)="name=$event"></my-cmp>

<video #movieplayer ...> <button (click)="movieplayer.play()"></button></video> - Создает локальную переменную movieplayer, которая обеспечивает доступ к экземпляру элемента video в выражениях привязки данных и привязки к событиям в текущем шаблоне.

<p *myUnless="myExpression">...</p> - Символ * превращает текущий элемент во встроенный шаблон. Эквивалентно: <ng-template [myUnless]="myExpression"><p>...</p></ng-template>

<p>Card No.: {{cardNumber | myCardNumberFormatter}}</p> - Преобразует текущее значение выражения cardNumber через канал myCardNumberFormatter.

<p>Employer: {{employer?.companyName}}</p> - Оператор безопасной навигации (?) означает, что поле employer является необязательным, и если оно не определено (undefined), остальная часть выражения должна игнорироваться.

<svg:rect x="0" y="0" width="100" height="100"/></svg> - Шаблону фрагмента SVG требуется префикс svg: в его корневом элементе для устранения неоднозначности элемента SVG из компонента HTML.

<svg> <rect x="0" y="0" width="100" height="100"/></svg> - Корневой элемент <svg> определяется как элемент SVG автоматически без префикса.

Встроенные директивы

 
import { CommonModule } from '@angular/common'
  

<section *ngIf="showSection"></section> - Удаляет или воссоздает часть дерева DOM на основе выражения showSection.

<li *ngFor="let item of list"></li> - Превращает элемент li и его содержимое в шаблон и использует его для создания представления для каждого элемента в списке.

<div [ngSwitch]="conditionExpression"> <ng-template [ngSwitchCase]="case1Exp">...</ng-template> <ng-template ngSwitchCase="case2LiteralString">...</ng-template> <ng-template ngSwitchDefault>...</ng-template></div> - Условно меняет содержимое div, выбирая один из встроенных шаблонов на основе текущего значения conditionExpression.

<div [ngClass]="{'active': isActive, 'disabled': isDisabled}"></div> - Связывает наличие классов CSS в элементе с достоверностью связанных значений карты. Правое выражение должно возвращать {class-name: true / false}.

<div [ngStyle]="{'property': 'value'}"><div [ngStyle]="dynamicStyles()"></div></div> - Позволяет назначать стили для элемента HTML с помощью CSS. Вы можете использовать CSS напрямую, как в первом примере, или вы можете вызвать метод из компонента.

Формы

 
import { FormsModule } from '@angular/forms'
  

<input [(ngModel)]="userName" /> - Обеспечивает двустороннюю привязку данных, анализ и проверку для элементов управления формы.

Декораторы классов

  
import { Directive, ... } from '@angular/core';
 

@Component({...})class MyComponent() {} - Объявляет, что класс является компонентом, и предоставляет метаданные о компоненте.

@Directive({...})class MyDirective() {} - Объявляет, что класс является директивой и предоставляет метаданные о директиве.

@Pipe({...})class MyPipe() {} - Declares that a class is a pipe and provides metadata about the pipe.

@Injectable()class MyService() {} - Объявляет, что класс может быть предоставлен и добавлен другими классами. Без этого декоратора компилятор не будет генерировать достаточно метаданных, чтобы позволить классу быть правильно созданным, когда он где-то внедряется.

Настройки директивы

 
@Directive({ property1: value1, ... })
  

selector: '.cool-button:not(a)' - Указывает селектор CSS, который идентифицирует эту директиву в шаблоне. Поддерживаются следующие селекторы: element, [attribute], .class и :not(). Не поддерживает селекторы родительско-дочерних отношений.

providers: [MyService, { provide: ... }] - Список поставщиков внедрения зависимостей для этой директивы и ее дочерних элементов.

Настройки компонента

@Component расширяет @Directive, поэтому конфигурация @Directive применяется и к компонентам.

moduleId: module.id - Если установлено, то templateUrl и styleUrl разрешаются относительно компонента.

viewProviders: [MyService, { provide: ... }] - Список поставщиков внедрения зависимостей, относящихся к представлению этого компонента.

template: 'Hello {{name}}'templateUrl: 'my-component.html' - Встроенный шаблон или внешний шаблон URL вида компонента.

styles: ['.primary {color: red}']styleUrls: ['my-component.css'] - Список встроенных стилей CSS или URL-адресов внешних таблиц стилей для стилизации представления компонента.

Декораторы полей классов для директив и компонентов

  
import { Input, ... } from '@angular/core';
 

@Input() myProperty; - Объявляет входное свойство, которое можно обновить с помощью привязки свойства (пример: <my-cmp [myProperty]="someExpression"></my-cmp>).

@Output() myEvent = new EventEmitter(); - Объявляет выходное свойство, которое запускает события, на которые вы можете подписаться, с привязкой к событию (пример: <my-cmp (myEvent)="doSomething()"></my-cmp>).

@HostBinding('class.valid') isValid; - Связывает свойство элемента хоста (здесь класс CSS valid) со свойством директивы / компонента (isValid).

@HostListener('click', ['$event']) onClick(e) {...} - Подписывается на событие элемента хоста (click) с помощью метода директивы / компонента (onClick), опционально передавая аргумент ($event).

@ContentChild(myPredicate) myChildComponent; - Привязывает первый результат запроса содержимого компонента (myPredicate) к свойству (myChildComponent) класса.

@ContentChildren(myPredicate) myChildComponents; - Связывает результаты запроса содержимого компонента (myPredicate) со свойством (myChildComponents) класса.

@ViewChild(myPredicate) myChildComponent; - Привязывает первый результат запроса представления компонента (myPredicate) к свойству (myChildComponent) класса. Недоступно для директив.

@ViewChildren(myPredicate) myChildComponents; - Связывает результаты запроса представления компонента (myPredicate) со свойством (myChildComponents) класса. Недоступно для директив.

Директива и обнаружение изменений компонентов и хуки жизненного цикла

constructor(myService: MyService, ...) { ... } - Вызывается до любого другого хука жизненного цикла. Используйте его для внедрения зависимостей, но избегайте здесь серьезной работы.

ngOnChanges(changeRecord) { ... } - Вызывается после каждого изменения входных свойств и перед обработкой содержимого или дочерних представлений.

ngOnInit() { ... } - Вызывается после конструктора, инициализации входных свойств и первого вызова ngOnChanges.

ngDoCheck() { ... } - Вызывается каждый раз, когда проверяются входные свойства компонента или директивы. Используйте его, чтобы расширить обнаружение изменений, выполнив пользовательскую проверку.

ngAfterContentInit() { ... } - Вызывается после ngOnInit, когда содержимое компонента или директивы было инициализировано.

ngAfterContentChecked() { ... } - Вызывается после каждой проверки содержимого компонента или директивы.

ngAfterViewInit() { ... } - Вызывается после ngAfterContentInit, когда инициализируются представления компонента и дочерние представления / представление, в котором находится директива.

ngAfterViewChecked() { ... } - Вызывается после каждой проверки представлений компонента и дочерних представлений / представления, в котором находится директива.

ngOnDestroy() { ... } - Вызывается один раз, прежде чем экземпляр будет уничтожен.

Настройки внедрения зависимостей

{ provide: MyService, useClass: MyMockService } - Устанавливает или переопределяет поставщика для MyService в класс MyMockService.

{ provide: MyService, useFactory: myFactory } - Устанавливает или переопределяет поставщика для MyService на заводскую функцию myFactory.

{ provide: MyValue, useValue: 41 } - Устанавливает или переопределяет поставщика для MyValue на значение 41.


Возможно, вам будет интересно

Маршрутизация Angular подробное руководство

Маршрутизация Angular подробное руководство. Без маршрутизации (роутинга) вы никогда не сделаете качественное приложение.

Кастомные элементы форм в Angular

Реактивные формы — это одна из лучших вещей в Angular. Поскольку они упрощают работу с большими и действительно динамичными формами. В этой мы рассмотрим создание кастомного элемента формы.

События и жизненный цикл

Жизненный цикл приложения и события в Angular

Route. Переключения и параметры

Работа с роутером и ссылками в Angular. Программное переключение роутера и параметры пути в Angular

Оформление заявки

Документы на создание сайта

Изучите наше коммерческое предложение, заполните БРИФ и отправьте его на почту maxidebox@list.ru. Изучив все пожелания из БРИФ-а, обратным ответом оповестим Вас по стоимости разработке, ответим на вопросы.

КП на создание сайта Коммерческое предложение на созданеи сайта

Мы берем на себя ответственность за все стадии работы и полностью избавляем клиентов от забот и необходимости вникать в тонкости.

Скачать БРИФ (акета) на создание сайта Скачать БРИФ (акета) на создание сайта

Зополните у БРИФ-а все необходимые поля. Сделайте краткое описание к каждому из пунктов анкеты, привидите примеры в соответсвующий пунктах - это позволит лучше понять Ваши ожидания и требования к сайту