本文へスキップ
BecomeCoder

Angularコース · 第4章 まとめとこれから · レッスン10

小さなTODOアプリ

ブラウザで完結

導入

*ngFor・イベント・入力・配列操作を組み合わせると、もう小さなアプリになります。やることを追加・削除できる TODO を作ってみましょう。

説明

imports: [CommonModule] を忘れずに。

@Component({
  selector: 'app-root',
  standalone: true,
  imports: [CommonModule],
  template: `
    <h2>やることリスト</h2>
    <input [value]="text" (input)="text = $any($event.target).value" placeholder="やること" />
    <button (click)="add()">追加</button>
    <ul>
      <li *ngFor="let item of items; let i = index">
        {{ item }} <button (click)="remove(i)">✕</button>
      </li>
    </ul>
    <p>残り {{ items.length }} 件</p>
  `,
})
class AppComponent {
  items: string[] = ['牛乳を買う', 'Angular を学ぶ'];
  text: string = '';
  add(): void {
    if (this.text.trim() === '') return;
    this.items.push(this.text);
    this.text = '';
  }
  remove(i: number): void {
    this.items.splice(i, 1);
  }
}
  • (input)="text = $any($event.target).value" … テンプレート内で直接代入する書き方。$any(...) は型チェックを一時的に緩める Angular の関数です。
  • add() で配列に追加、remove(i)splice により削除。
  • *ngForlet i = index で各行の番号を取り、削除に使っています。

やってみよう

「全部消す」ボタンを追加してみましょう(ヒント: this.items = [])。入力が空のときは追加ボタンを押しても増えないことも確かめてください。

実際に動かしてみよう

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

Angular — ブラウザ内で実行

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