Membuat Contact Manager Module

Aplikasi yang akan kita buat memiliki layout seperti berikut

Mari kita buat module dan component untuk aplikasi diatas. Buka command prompt dan jalankan perintah berikut

$ ng g m contactmanager
$ ng g c contactmanager/contactmanager-app --flat --skip-tests --inline-style --inline-template
$ ng g c contactmanager/components/toolbar --skip-tests
$ ng g c contactmanager/components/main-content --skip-tests
$ ng g c contactmanager/components/sidenav --skip-tests 

contactmanager-app akan berfungsi sebagai container, yang akan berisi component toolbar, sidenav dan main-content.

Buka file app.module.ts, tambahkan routing untuk contactmanager dan ubah default redirect ke contactmanager.

import { NgModule } from '@angular/core';

import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterModule, Routes } from '@angular/router';

import { AppComponent } from './app.component';


const routes : Routes = [
  {path: 'contactmanager', loadChildren: () => import('./contactmanager/contactmanager.module').then(m=> m.ContactmanagerModule)},
  {path: 'demo', loadChildren: () => import('./demo/demo.module').then(m=> m.DemoModule)},
  {path: '**', redirectTo: 'contactmanager'}
]

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    RouterModule.forRoot(routes),
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Buka file contactmanager.module.ts, tambahkan flex-layout dan formsmodule.

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FlexLayoutModule } from '@angular/flex-layout';
import { FormsModule } from '@angular/forms';
import { Routes, RouterModule } from '@angular/router';

import { MaterialModule } from '../shared/material.module';

import { ContactmanagerAppComponent } from './contactmanager-app.component';
import { ToolbarComponent } from './components/toolbar/toolbar.component';
import { MainContentComponent } from './components/main-content/main-content.component';
import { SidenavComponent } from './components/sidenav/sidenav.component';


const routes : Routes = [
  {
    path: '', component: ContactmanagerAppComponent, 
    children: [
      {path: '', component: MainContentComponent}
    ]
},
  {path: '**', redirectTo: ''}
]

@NgModule({
  declarations: [
    ContactmanagerAppComponent,
    ToolbarComponent,
    MainContentComponent,
    SidenavComponent,
  ],
  imports: [
    CommonModule,
    FormsModule,
    MaterialModule,
    FlexLayoutModule,
    RouterModule.forChild(routes)   
  ]
})
export class ContactmanagerModule { }

Kemudian kita hubungkan antar component. Buka file contactmanager-app.component.ts, ubah template dengan menambahkan sidenav selector.

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-contactmanager-app',
  template: `
    <app-sidenav></app-sidenav>
  `,
  styles: [
  ]
})
export class ContactmanagerAppComponent implements OnInit {

  constructor() { }

  ngOnInit(): void {
  }

}

Buka file sidenav.component.html, tambahkan toolbar selector router-outlet

<app-toolbar></app-toolbar>
<router-outlet></router-outlet>

Jika kita jalankan aplikasi, component sudah terhubung.

Sampai disini kita sudah berhasil membuat kerangka dasar dari aplikasi.

Pada modul berikutnya kita mulai menggunakan Angular Material Component untuk membuat SideNav.

Sharing is caring:

Leave a Comment