@for 控制流與特殊變數

@empty 語法

@empty 是用在 @for 的後面,用來指定當要循環的陣列裡沒有值的時候該如何顯示內容。

範例:

htmlCopy<ul>
  @for (ticket of tickets; track ticket.id) {
    <li>
      <app-ticket />
    </li>
  } @empty {
    <p>no tickets available.</p>
  }
</ul>

tickets 陣列為空時,會顯示 "no tickets available."。


@for 中可使用的特殊變數

@for 循環中,Angular 提供了幾個特殊變數,可以幫助我們更靈活地處理循環項目:

$first

會在第一個項目中為 true,其他項目則為 false。適合用來為第一個項目添加特殊樣式或行為。

htmlCopy<div>
  <ul>
    @for (ticket of tickets; track ticket.id) {
      <li><app-ticket /> - {{ $first }}</li>
    } @empty {
      <p>no tickets available.</p>
    }
  </ul>
</div>

其他特殊變數

  • $last:最後一個項目為 true,適合用在分隔符號的處理(例如移除最後項目後的逗號)。

  • $odd:奇數項目(1, 3, 5...)為 true,適合用在設置交替行樣式。

  • $even:偶數項目(0, 2, 4...)為 true,同樣適合用在設置交替行樣式。

  • $count:所有項目的總數量,適合顯示總數或用於計算。

實際應用範例

htmlCopy<ul class="ticket-list">
  @for (ticket of tickets; track ticket.id; let i = $index) {
    <li [class.highlighted]="$first"
        [class.odd-row]="$odd"
        [class.even-row]="$even"
        [class.last-item]="$last">
      {{ i + 1 }}/{{ $count }}: <app-ticket [ticketData]="ticket" />
      @if (!$last) {
        <hr class="separator">
      }
    </li>
  } @empty {
    <p class="no-data">目前沒有待處理的工單</p>
  }
</ul>

Last updated