本文へスキップ
BecomeCoder

Angularコース · 第2章 イベントと表示の制御 · レッスン6

条件と繰り返し ― *ngIf と *ngFor

ブラウザで完結

導入

「条件によって表示を切り替える」「配列を一覧にする」には、構造ディレクティブ *ngIf*ngFor を使います。これらを使うには imports: [CommonModule] が必要です。

説明

importsCommonModule を足すのがポイントです。

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [CommonModule],
  template: `
    <button (click)="show = !show">切り替え</button>
    <p *ngIf="show">いま表示されています</p>
    <p *ngIf="!show">いまは隠れています</p>

    <h3>果物リスト</h3>
    <ul>
      <li *ngFor="let fruit of fruits">{{ fruit }}</li>
    </ul>
    <p>全 {{ fruits.length }} 件</p>
  `,
})
class AppComponent {
  show: boolean = true;
  fruits: string[] = ['りんご', 'みかん', 'ぶどう'];
}
  • imports: [CommonModule]*ngIf / *ngFor を使うために必要です(忘れるとエラーになります)。
  • *ngIf="show"showtrue のときだけ、その要素を表示します。
  • *ngFor="let fruit of fruits" … 配列 fruits を1つずつ取り出して <li>繰り返します。
  • 先頭の *(アスタリスク)が「構造を変えるディレクティブ」の印です。

やってみよう

fruits に果物を2つ足してみましょう。*ngForlet i = index を足して(*ngFor="let fruit of fruits; let i = index")、{{ i + 1 }}: {{ fruit }} と番号付きで表示してみてください。

実際に動かしてみよう

下のエディタにAngularのコンポーネントを書くと、右側のプレビューにその場で描画されます。本文の例を打ち込んだり書き換えたりして、テンプレート構文やバインディングの動きを確かめながら進めましょう(初回だけ読み込みに少し時間がかかります)。

Angular — ブラウザ内で実行

ブラウザ内でAngular(JIT)を動かす学習用環境(同梱)を読み込みます(初回のみ少し時間がかかります)。
スクロールして表示された時点でも自動で読み込まれます。