Поиск по сайту
Ctrl + K
Вопросы по Angular

Какова цель директивы ngSwitch?

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

Как работает ngSwitch?

ngSwitch позволяет задать несколько элементов, из которых будет отображен только тот, который соответствует указанному значению. Основные элементы, которые используются вместе с ngSwitch, это:

  • ngSwitch: обозначает контейнер для элементов, подлежащих условному отображению.
  • ngSwitchCase: обозначает конкретный случай, который соответствует значению.
  • ngSwitchDefault: используется, если ни один из случаев не соответствует значению.

Пример использования

Вот простой пример того, как можно использовать ngSwitch в Angular:


<div [ngSwitch]="favoriteColor">
    <div *ngSwitchCase="'red'">Ваш любимый цвет — красный!</div>
    <div *ngSwitchCase="'blue'">Ваш любимый цвет — синий!</div>
    <div *ngSwitchCase="'green'">Ваш любимый цвет — зелёный!</div>
    <div *ngSwitchDefault>Ваш цвет не входит в список предпочтений.</div>
</div>

<select [(ngModel)]="favoriteColor">
    <option value="">Выберите цвет</option>
    <option value="red">Красный</option>
    <option value="blue">Синий</option>
    <option value="green">Зелёный</option>
</select>

Объяснение кода

  • В переменной favoriteColor будет храниться выбранный цвет из выпадающего списка.
  • В зависимости от значения favoriteColor, будет отображен соответствующий текст:
    • Если цвет красный, отображается "Ваш любимый цвет — красный!".
    • Если цвет синий, отображается "Ваш любимый цвет — синий!".
    • Если цвет зелёный, отображается "Ваш любимый цвет — зелёный!".
    • Если ни один из случаев не соответствует, будет отображено сообщение по умолчанию "Ваш цвет не входит в список предпочтений.".
  • ngModel двусторонне связывает значение выбранного цвета в выпадающем списке с переменной favoriteColor.
  • Преимущества использования ngSwitch

    • Чистота кода: Позволяет избежать длинных условий *ngIf и делает шаблон более читаемым.
    • Производительность: При использовании ngSwitch Angular может оптимизировать отображение, так как видит, что только один элемент должен быть отображён в любой момент времени.

    Использование ngSwitch может существенно упростить логику отображения в ваших Angular-приложениях и сделать код более понятным и организованным.