Шпаргалка по Angular 6

Что делают различные фрагменты кода Angular.

Шпаргалка - это заметка для быстрого ознакомления. Возможно, вы захотите добавить эту страницу в закладки, так как я собрал некоторые из различных фрагментов кода из документов Angular и попытался объяснить их быстро и легко, чтобы помочь вам лучше понять Angular и лучше понять его, поскольку я сам горжусь тем, что являюсь экспертом по Angular ... Я сделал быстрый тест IQ на Pluralsight и обнаружил, что я немного ниже уровня эксперта, lol. Вот как я это сделал.

Обладая таким мастерством с первой попытки, я решил помочь своим коллегам-энтузиастам Angular лучше понять Angular. Вот список тем, которыми я решил заняться. Эта статья будет частью серии из двух частей, это уменьшит размер статьи, чтобы сделать ее менее длинной. Ссылка на вторую часть будет предоставлена ​​по завершении.

Самостоятельная загрузка.

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
platformBrowserDynamic().bootstrapModule(AppModule);

Это запускает (загружает) приложение с использованием указанного модуля, в данном случае это AppModule. Загруженное приложение становится корневым модулем всего приложения Angular.

NgModules.

import { ngModule } from '@angular/core';

NgModule содержит метаданные, которые будут введены в приложение. К ним относятся объявления, импорт, экспорт, поставщики, бутстрап и схемы.

@ngModule({
  declarations: [AppComponent, HeaderComponent],
  imports: [BrowserModule, MatToolBarModule],
  exports: [MyDatePipe],
  providers: [HttpServiceProvider, LocalDataProvider],
  bootstrap: [AppModule],
  schemas: [NO_ERRORS_SCHEMAS]
})

Объявления определяют список компонентов, каналов и директив, которые следует использовать в модуле. Импорт определяет список модулей для импорта, и они должны быть доступны через объявления модулей, в которые они импортируются. Экспорт - это компоненты, директивы и каналы, которые доступны модулям, которые импортируют этот конкретный модуль (приложение). поставщики - это службы, которые вводят данные в модуль и реализуют внедрение зависимостей. Метаданные начальной загрузки содержат компоненты для начальной загрузки, как только Загрузочный модуль AppModule. Наконец, схемы - это элементы и свойства, которые не являются директивами Angular и не компонентами, которые вы хотели бы добавить в приложение.

Доступны две схемы: NO_ERRORS_SCHEMA, которые определяют любой элемент и разрешенные свойства, и CUSTOM_ELEMENTS_SCHEMA, которые указывают, что любой настраиваемый элемент (имена элементов со знаком «-») с любыми свойствами являются разрешается. Примеры пользовательских элементов схемы: ‹mat-toolbar›

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

Вот некоторые из синтаксиса шаблонов для HTML и объяснения к каждому из них.

<input [value]="firstName">

Это связывает свойство значение с результатом выражения firstName из компонента.

<div [attr.role]="myRole"> </div>

Это привязывает атрибут роль к результату выражения myRole из компонента.

<div [class.active]="isActive"> </div>

Это привязывает CSS-класс active к элементу div в зависимости от того, является ли выражение isActive в компоненте истинным или ложным.

<div [style.width.px]="width"> </div>

Это привязывает ширину свойства style в пикселях к значению выражения width в компоненте.

<button (click)="doSomething($event)"> Click Me </button>

Это вызывает метод / функцию doSomething при передаче объекта события в функцию, когда для элемента запускается событие щелчка.

<p title="My name is {{name}}"> </p>

Это связывает текстовое содержимое в интерполированную строку. Это похоже на [title] = "’ Меня зовут ’+ имя"

<p [(username)]="user" > </p>

Это создает функцию Angular, называемую двусторонней привязкой данных, при которой изменение данных в компоненте немедленно отражается в шаблоне.

<video #movieplayer>
  <button (click)="movieplayer.play()"> Play Movie </button>
</video>

При этом создается локальная переменная, доступная только компоненту movieplayer, которая дает доступ к экземпляру элемента video в выражениях привязки к событию и привязки данных.

<p *unless="expression"> </p>
//equivalent to
<ng-template [unless]="expression"> </ng-template>

Символ * превращает элемент во встроенный шаблон.

<p> Date: {{ currentDate | datetime }} </p>

Преобразует значение выражения currentDate из компонента с помощью конвейера даты и времени. Этот канал является встроенным, но вы можете создавать собственные каналы.

<p> {{user?.username}} </p>

Это выражение делает поле user необязательным, если оно не определено с помощью оператора безопасной навигации (?), Остальная часть выражения также игнорируется.

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

Встроенные директивы импортируются из модуля angular / common.

import { CommonModule } from '@angular/common';

Давайте пройдемся по четырем из них.

<section *ngIf="show"> </section>

Это создает или скрывает (полностью удаляет, не путайте это со «скрытым» свойством HTML) элемент в зависимости от значения выражения show в компоненте.

<li *ngFor="let user of users"> </li>

Это делает элемент li шаблоном, а затем использует содержимое массива users для создания экземпляра представления для каждого элемента в списке. Это похоже на использование функции forEach в JS для создания представления для каждого элемента в массиве. Директива ngFor может использоваться только с массивами или строками.

<div [ngSwitch]="condition">
  <div [ngSwitchCase]="case1"> ... </div>
  <div [ngSwitchCase]="case2"> ... </div>
</div>

Это меняет местами содержимое div в зависимости от значения условия в выражении. Содержание изменяется в соответствии со значением, указанным в случае. Это работает аналогично атрибуту Switch в JS.

<div [ngClass]="{'active': isActive }"> </div>

Это привязывает CSS-класс active к элементу в зависимости от того, является ли выражение isActive истинным или ложным.

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

Декораторы классов импортируются из модуля angular core, как показано ниже.

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

Замените директиву декоратором, который вы хотите использовать.

@Component({...})
class AppComponent() { }

Это объявляет, что класс является компонентом, а также предоставляет метаданные о компоненте.

@Directive({...})
class MyDirective() { }

Это объявляет, что класс является директивой, и предоставляет о нем метаданные.

@Pipe({...})
class MyPipe() { }

Это объявляет, что класс является каналом, и предоставляет метаданные о канале.

@Injectable()
class MyService() { }

Это объявляет, что класс содержит инжекторы зависимостей, это означает, что данные, предоставленные инжектором, должны быть введены в конструктор при создании экземпляра этого класса.

И последнее в этой первой части ...

Формы.

import { FormsModule } from '@angular/forms';

Он импортируется из модуля угловых форм, как показано выше, и обеспечивает двустороннюю привязку данных для элементов формы, проверки и анализа данных.

<input [(ngModel)]="firstName">

Остальное будет предоставлено в назначенное время. Наберитесь терпения и огромное спасибо за прочтение этой статьи. Пожалуйста, оставьте несколько аплодисментов, если этот контент оказался для вас полезным, и не забудьте подписаться. ;)