ng-control-flow

Angular Control Flow


@if

<div class='result container'>
  @if( win() ) {
    <p>You win</p>
  }
  @else if( lose() ) {
    <p>You lose</p>
  }
  @else {
    <p>Draw</p>
  }
</div>

@for

items = signal([
  {title: 'one', id: 1}, {title: 'two', id: 2}, 
  {title: 'three', id: 3}, {title: 'four', id: 4}
])
@for(item of items(); track item.id) {
  <p>{{ item.title }}</p>
}
  • track muss ein Ausdruck folgen, welcher für jedes item unique ist
  • track $index einfach solang keine Neuordnung

@for(item of items; track $index) {
    {{ $index }}: {{ item }}
}
@empty {
    <p>Please add some items</p>
}
$count => items.length
$first => $index === 0
$last  => $index === $count - 1
$even  => $index % 2 === 0
$odd   => !$even

@switch

@switch (state()) {
  @case ('login') {
    <app-login></app-login>
  }
  @case ('shop') {
    <app-shop></app-shop>
  }
  @case ('admin') {
    @if (isAdmin(user)) { 
      <app-admin></app-admin> 
    }
  }
  @default {
    <app-not-found></app-not-found>
  }
}