バーテンダーエンジニア

元フレアバーテンダーからエンジニアに転職。未経験からのエンジニア転職経験談・実務で感じたこと・個人開発で学んだ内容・日常話などマイペースに発信していきます。仕事ではphp、Laravel、Vue.js、Angular辺りを触ってます。趣味は筋トレ!!ソムリエの資格も持ってます^^

Angularで開閉メニューを実装する

この記事の目的

Angularでアプリによくある開閉式のメニュー(この名称が正しいのか微妙ですが...)を作成する方法を紹介します。 qiita.gif

Angular-materialを利用することで、簡単に実装することが可能です。本記事ではAngular11をベースに実装を行っております。

実装スタート

実装といってもモジュールをインポート、テンプレートを追加していくのみです。

まず、対象のモジュールに下記モジュールをimportしておきます。 また今回は、ヘッダーに開閉メニューボタンを置く為、ヘッダーデザイン用のモジュールも一緒にimportしておきます。

import { MatToolbarModule } from '@angular/material/toolbar'; // ヘッダー用
import { MatMenuModule } from '@angular/material/menu'; // 開閉メニュー用
import { MatIconModule } from '@angular/material/icon'; // アイコン用

テンプレート側では以下のように記載してください。

<mat-toolbar color="primary">
  <span>アプリタイトル</span>
  <span class="spacer"></span>
  <button mat-button [matMenuTriggerFor]="menu">
    <mat-icon>account_circle</mat-icon>
  </button>
  <mat-menu #menu="matMenu">
    <button mat-menu-item>プロフィール</button>
    <button mat-menu-item>ログアウト</button>
  </mat-menu>
</mat-toolbar>

mat-toolbarでヘッダーの部分を作成し、mat-menuを利用することで簡単に開閉メニューを作成することができます。 プロフィール、ログアウトなどの項目にアイコンをつけてあげるとそれっぽくなります!!

最後に...

今回の記事はAngular-materialのドキュメントを参考にさせていただいてます。 https://material.angular.io/components/menu/overview