Angular. Enum values in template

Angular не позволяет напрямую использовать перечислимый тип (Enum) в шаблонах. Необходимо создавать свойство, которому присваивать выбранный Enum и в шаблоне использовать это свойство.

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

enum Size = {
  XLarge,
  Large,
  Medium,
  Small
}

@Component({
    selector: 'app-size-select',
    template: `
        <select [ngModel]="selectedSize">
            <option value="{{ size.XLarge }}">Extra Large</option>
            <option value="{{ size.Large }}">Large</option>
            <option value="{{ size.Medium }}">Medium</option>
            <option value="{{ size.Small }}">Small</option>
        </select>    
    `
})
export class SizeSelectComponent { 
    @Input() selectedSize: Size;
    size = Size;
}

Похожие записи

RxJS Pipeable Operators

Начиная с версии rxjs 5.5 операторы вместо цепочки вызовов применяются как параметры функции pipe.

Angular dependency injection

Определение Provider (useClass, useValue, useFactory ), Injector. Декоратор @Inject, ключ multi: true

13 ноября 2018 г. в Angular

Об subscribe() vs async

О предпочтительности использования async pipe. При OnPush стратегии не требуется вызывать markForCheck() внутри подписки +решение с несколькими | async pipes развёрнутых в одну переменную (внутри шаблона).

06 января 2019 г. в Angular

TS. Event bus

Создаётся providedIn: 'root' сервис событий. Затем отправляются события на шину, и если какой-либо слушатель подписан на эти события, он получает уведомления.

Angular Let Directive

*ngIf не отображает содержимое в falsy случаях (0, null, undefined) на async pipe, в пакете @rx-angular/template предлагается решение