Angular Material 7-SideNav

ザ・ <mat-sidenav>Angular Directiveは、マテリアルデザインのスタイリングとアニメーション機能を備えたサイドナビゲーションバーとメインコンテンツパネルを作成するために使用されます。

  • <mat-sidenav-container> -メインコンテナを表します。

  • <mat-sidenav-content> -コンテンツパネルを表します。

  • <mat-sidenav> -サイドパネルを表します。

この章では、AngularMaterialを使用してsidenavコントロールを描画するために必要な構成を紹介します。

Angularアプリケーションを作成する

次の手順に従って、Angular 6で作成したAngularアプリケーションを更新します-プロジェクトセットアップの章-

ステップ 説明
1 Angular 6-プロジェクトセットアップの章で説明されているように、materialAppという名前のプロジェクトを作成します。
2 変更app.module.tsapp.component.tsapp.component.cssをしてapp.component.htmlとして以下に説明します。残りのファイルは変更しないでください。
3 アプリケーションをコンパイルして実行し、実装されたロジックの結果を確認します。

変更されたモジュール記述子の内容は次のとおりです app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
import {MatSidenavModule} from '@angular/material'
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
@NgModule({
   declarations: [
      AppComponent
   ],
   imports: [
      BrowserModule,
      BrowserAnimationsModule,
      MatSidenavModule,
      FormsModule,
      ReactiveFormsModule
   ],
   providers: [],
   bootstrap: [AppComponent]
})
export class AppModule { }

変更されたCSSファイルの内容は次のとおりです app.component.css

.tp-container {
   position: absolute;
   top: 0;
   bottom: 0;
   left: 0;
   right: 0;
   background: #eee;
}
.tp-section {
   display: flex;
   align-content: center;
   align-items: center;
   height: 60px;
   width:100px;   
}

以下は、変更されたHTMLホストファイルの内容です。 app.component.html

<mat-sidenav-container class = "tp-container">
   <mat-sidenav mode = "side" opened>
      <section class = "tp-section">
         <span>File</span>
      </section>
      <section class = "tp-section">
         <span>Edit</span>
      </section>
   </mat-sidenav>
   <mat-sidenav-content>Main content</mat-sidenav-content>
</mat-sidenav-container>

結果

結果を確認します。

詳細

  • 最初に、ページ全体にまたがるメインコンテナを作成しました。

  • 次に、mat-sidenavを使用してサイドナビゲーションを作成し、mat-sidenav-contentを使用してコンテンツパネルを作成します。