меню

Шпаргалка по 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.


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

Компонент и модель

Angilar создание обычных и вложенных компонентов через CLI. Описание модели.

Появление нового функционала в Angular 16 и Angular 17

Angular предоставляет новые возможности для замены директив ngFor и ngIf. Все, что вам нужно сделать, это заиспользовать @for и @if, как вы используете директивы ngFor и ngIf, но с немного другим синтаксисом.

Angular Interceptor - перехватчик ошибок http

Время от времени в любом приложении могут возникать ошибки, необходимо внедрить подходящую систему обработки ошибок. В этой статье мы расскажем про различные типы http ошибок и то, как мы можем их решить.

Observable. Subscribe и Unsubscribe

Stream и работа с Observable в Angular. Пример отписки в ngOnDestroy()

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

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

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

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

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

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

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