Menata Aplikasi Sudut Dengan Bootstrap

Diterbitkan: 2022-03-10
Ringkasan cepat Dalam tutorial ini, kita akan menggunakan versi terbaru Bootstrap 4 dan Angular 7 untuk membangun aplikasi Angular dan menata antarmuka dengan Bootstrap.

Jika Anda sudah mencoba membangun aplikasi web dengan Angular 7, inilah saatnya untuk meningkatkannya. Mari kita lihat bagaimana kita dapat mengintegrasikan gaya Bootstrap CSS dan file JavaScript dengan proyek Angular yang dihasilkan menggunakan Angular CLI, dan cara menggunakan kontrol formulir dan kelas untuk membuat formulir yang indah dan cara menata tabel HTML menggunakan gaya Tabel.

Untuk bagian Angular, kami akan membuat aplikasi sisi klien sederhana untuk membuat dan mencantumkan kontak. Setiap kontak memiliki ID, nama, email, dan deskripsi, dan kami akan menggunakan layanan data sederhana yang menyimpan kontak dalam array TypeScript. Anda dapat menggunakan API dalam memori lanjutan sebagai gantinya. (Lihat "Panduan Lengkap Untuk Perutean Dalam Sudut".)

Catatan : Anda bisa mendapatkan kode sumber tutorial ini dari repositori GitHub ini dan lihat contoh langsungnya di sini.

Persyaratan

Sebelum kita mulai membuat aplikasi demo, mari kita lihat persyaratan yang dibutuhkan untuk tutorial ini.

Pada dasarnya, Anda akan membutuhkan yang berikut:

  • Node.js dan NPM terinstal (Anda cukup mengunjungi situs web resmi dan mengunduh binari untuk sistem Anda),
  • Keakraban dengan TypeScript,
  • Pengalaman kerja Angular,
  • Pengetahuan dasar tentang CSS dan HTML.
Lebih banyak setelah melompat! Lanjutkan membaca di bawah ini

Memasang CLI Sudut

Mari kita mulai dengan menginstal versi terbaru Angular CLI. Di terminal Anda, jalankan perintah berikut:

 $ npm install -g @angular/cli

Pada saat penulisan, v7.0.3 Angular CLI diinstal. Jika Anda sudah menginstal CLI, Anda dapat memastikan bahwa Anda memiliki versi terbaru dengan menggunakan perintah ini:

 $ ng --version

Membuat Proyek

Setelah Anda menginstal Angular CLI, mari kita gunakan untuk menghasilkan proyek Angular 7 dengan menjalankan perintah berikut:

 $ ng new angular-bootstrap-demo

CLI kemudian akan menanyakan Anda:

Apakah Anda ingin menambahkan perutean sudut?

Tekan Y . Selanjutnya, ia akan menanyakan Anda:

Format stylesheet mana yang ingin Anda gunakan?

Pilih "CSS".

Menambahkan Bootstrap

Setelah membuat proyek, Anda perlu menginstal Bootstrap 4 dan mengintegrasikannya dengan proyek Angular Anda.

Pertama, navigasikan ke dalam folder root proyek Anda:

 $ cd angular-bootstrap-demo

Selanjutnya, instal Bootstrap 4 dan jQuery dari npm:

 $ npm install --save bootstrap jquery

(Dalam hal ini, bootstrap v4.2.1 dan jquery v3.3.1 diinstal.)

Terakhir, buka file angular.json dan tambahkan path file dari file Bootstrap CSS dan JS serta jQuery ke array styles dan scripts di bawah target build :

 "architect": { "build": { [...], "styles": [ "src/styles.css", "node_modules/bootstrap/dist/css/bootstrap.min.css" ], "scripts": [ "node_modules/jquery/dist/jquery.min.js", "node_modules/bootstrap/dist/js/bootstrap.min.js" ] },

Lihat cara menambahkan Bootstrap ke proyek Angular 6 untuk opsi tentang cara mengintegrasikan Bootstrap dengan Angular.

Menambahkan Layanan Data

Setelah membuat proyek dan menambahkan Bootstrap 4, kita akan membuat layanan Angular yang akan digunakan untuk menyediakan beberapa data demo untuk ditampilkan di aplikasi kita.

Di terminal Anda, jalankan perintah berikut untuk menghasilkan layanan:

 $ ng generate service data

Ini akan membuat dua file src/app/data.service.spec.ts dan src/app/data.service.ts .

Buka src/app/data.service.ts dan ganti isinya dengan berikut ini:

 import { Injectable } from '@angular/core'; @Injectable({ providedIn: 'root' }) export class DataService { contacts = [ {id: 1, name: "Contact 001", description: "Contact 001 des", email: "[email protected]"}, {id: 2, name: "Contact 002", description: "Contact 002 des", email: "[email protected]"}, {id: 3, name: "Contact 003", description: "Contact 003 des", email: "[email protected]"}, {id: 4, name: "Contact 004", description: "Contact 004 des", email: "[email protected]"} ]; constructor() { } public getContacts():Array<{id, name, description, email}>{ return this.contacts; } public createContact(contact: {id, name, description, email}){ this.contacts.push(contact); } }

Kami menambahkan larik contacts dengan beberapa kontak demo, metode getContacts() yang mengembalikan kontak dan createContact() yang menambahkan kontak baru ke larik contacts .

Menambahkan Komponen

Setelah membuat layanan data, selanjutnya kita perlu membuat beberapa komponen untuk aplikasi kita. Di terminal Anda, jalankan:

 $ ng generate component home $ ng generate component contact-create $ ng generate component contact-list

Selanjutnya, kita akan menambahkan komponen ini ke modul perutean untuk mengaktifkan navigasi di aplikasi kita. Buka file src/app/app-routing.module.ts dan ganti isinya dengan berikut ini:

 import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; import { ContactListComponent } from './contact-list/contact-list.component'; import { ContactCreateComponent } from './contact-create/contact-create.component'; import { HomeComponent } from './home/home.component'; const routes: Routes = [ {path: "", pathMatch: "full",redirectTo: "home"}, {path: "home", component: HomeComponent}, {path: "contact-create", component: ContactCreateComponent}, {path: "contact-list", component: ContactListComponent} ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }

Kami menggunakan properti redirectTo dari jalur router untuk mengarahkan pengguna ke halaman beranda ketika mereka mengunjungi aplikasi kami.

Menambahkan Komponen Header Dan Footer

Selanjutnya, mari kita buat komponen header dan footer:

 $ ng generate component header $ ng generate component footer

Buka file src/app/header/header.component.html dan tambahkan kode berikut:

 <nav class="navbar navbar-expand-md bg-dark navbar-dark fixed-top"> <a class="navbar-brand" href="#">Angular Bootstrap Demo</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse"> <ul class="navbar-nav mr-auto"> <li class="nav-item"> <a class="nav-link" routerLink="/home">Home</a> </li> <li class="nav-item"> <a class="nav-link" routerLink="/contact-list">Contacts</a> </li> <li class="nav-item"> <a class="nav-link" routerLink="/contact-create">Create</a> </li> </ul> </div> </nav>

Bilah navigasi akan dibuat dengan Bootstrap 4, dan kami akan menggunakan direktif routerLink untuk menautkan ke komponen yang berbeda.

Gunakan kelas .navbar , .navbar-expand{-sm|-md|-lg|-xl} dan .navbar-dark untuk membuat bilah navigasi Bootstrap. (Untuk informasi lebih lanjut tentang bilah navigasi, lihat dokumentasi Bootstrap di "Navbar".

Selanjutnya, buka file src/app/header/header.component.css dan tambahkan:

 .nav-item{ padding:2px; margin-left: 7px; }

Selanjutnya, buka file src/app/footer/footer.component.html dan tambahkan:

 <footer> <p class="text-xs-center">© Copyright 2019. All rights reserved.</p> </footer>

Buka file src/app/footer/footer.component.css dan tambahkan:

 footer { position: absolute; right: 0; bottom: 0; left: 0; padding: 1rem; text-align: center; }

Selanjutnya, buka file src/app/app.component.html dan ganti isinya dengan berikut ini:

 <app-header></app-header> <router-outlet></router-outlet> <app-footer></app-footer>

Kami membuat shell aplikasi dengan menggunakan komponen header dan footer yang berarti mereka akan ada di setiap halaman aplikasi kami. Satu-satunya bagian yang akan diubah adalah apa yang akan dimasukkan ke dalam outlet router (lihat “The Application Shell” di situs web Angular untuk informasi lebih lanjut).

Menambahkan Jumbotron Bootstrap

Menurut dokumen Bootstrap:

“Jumbotron adalah komponen ringan dan fleksibel yang secara opsional dapat memperluas seluruh area pandang untuk menampilkan pesan pemasaran utama di situs Anda.”

Mari tambahkan komponen Jumbotron ke halaman rumah kita. Buka file src/app/home/home.component.html dan tambahkan:

 <div class="jumbotron"> <h1>Angular Bootstrap Demo</h1> <p class="lead"> This demo shows how to integrate Bootstrap 4 with Angular 7 </p> <a class="btn btn-lg btn-primary" href="" role="button">View tutorial</a> </div>

Kelas .jumbotron digunakan untuk membuat Bootstrap Jumbotron.

Menambahkan Komponen Daftar: Menggunakan Tabel Bootstrap

Sekarang mari kita buat data component-to-list dari data service dan gunakan tabel Bootstrap 4 untuk menampilkan data tabular.

Pertama, buka file src/app/contact-list/contact-list.component.ts dan masukkan layanan data lalu panggil metode getContacts() untuk mendapatkan data saat komponen diinisialisasi:

 import { Component, OnInit } from '@angular/core'; import { DataService } from '../data.service'; @Component({ selector: 'app-contact-list', templateUrl: './contact-list.component.html', styleUrls: ['./contact-list.component.css'] }) export class ContactListComponent implements OnInit { contacts; selectedContact; constructor(public dataService: DataService) { } ngOnInit() { this.contacts = this.dataService.getContacts(); } public selectContact(contact){ this.selectedContact = contact; } }

Kami menambahkan dua variabel contacts dan SelectedContact yang menyimpan kumpulan kontak dan kontak yang selectedContact . Dan metode selectContact() yang menetapkan kontak yang dipilih ke variabel selectedContact .

Buka file src/app/contact-list/contact-list.component.html dan tambahkan:

 <div class="container"> <table class="table table-hover"> <thead> <tr> <th>#</th> <th>Name</th> <th>Email</th> <th>Actions</th> </tr> </thead> <tbody> <tr *ngFor="let contact of contacts"> <td>{{ contact.id }}</td> <td> {{ contact.name }}</td> <td> {{ contact.email }}</td> <td> <button class="btn btn-primary" (click)="selectContact(contact)"> Show details</button> </td> </tr> </tbody> </table> <div class="card text-center" *ngIf="selectedContact"> <div class="card-header"> # {{selectedContact.id}} </div> <div class="card-block"> <h4 class="card-title">{{selectedContact.name}}</h4> <p class="card-text"> {{selectedContact.description}} </p> </div> </div> </div>

Kami hanya mengulang array contacts dan menampilkan setiap detail kontak dan tombol untuk memilih kontak. Jika kontak dipilih, Kartu Bootstrap 4 dengan informasi lebih lanjut akan ditampilkan.

Ini adalah definisi Kartu dari Bootstrap 4 docs:

Kartu adalah wadah konten yang fleksibel dan dapat diperluas. Ini mencakup opsi untuk header dan footer, berbagai macam konten, warna latar belakang kontekstual, dan opsi tampilan yang kuat. Jika Anda terbiasa dengan Bootstrap 3, kartu menggantikan panel, sumur, dan gambar mini lama kami. Fungsionalitas serupa dengan komponen tersebut tersedia sebagai kelas pengubah untuk kartu.”

Kami menggunakan kelas .table dan .table-hover untuk membuat tabel bergaya Bootstrap, kelas .card , .card-block , .card-title dan .card-text untuk membuat kartu. (Untuk informasi lebih lanjut, lihat Tabel dan Kartu.)

Menambahkan Komponen Buat: Menggunakan Kontrol Dan Kelas Formulir Bootstrap

Sekarang mari kita tambahkan formulir ke komponen contact-create kita. Pertama, kita perlu mengimpor FormsModule di modul aplikasi utama kita. Buka file src/app/app.module.ts , impor FormsModule dari @angular/forms , dan tambahkan ke larik imports :

 import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppRoutingModule } from './app-routing.module'; import { FormsModule } from '@angular/forms'; /* ... */ @NgModule({ declarations: [ /* ... */ ], imports: [ BrowserModule, AppRoutingModule, FormsModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }

Selanjutnya, buka file src/app/contact-create/contact-create.component.ts dan ganti isinya dengan berikut ini:

 import { Component, OnInit } from '@angular/core'; import { DataService } from '../data.service'; @Component({ selector: 'app-contact-create', templateUrl: './contact-create.component.html', styleUrls: ['./contact-create.component.css'] }) export class ContactCreateComponent implements OnInit { contact : {id, name, description, email} = {id: null, name: "", description: "", email: ""}; constructor(public dataService: DataService) { } ngOnInit() { } createContact(){ console.log(this.contact); this.dataService.createContact(this.contact); this.contact = {id: null, name: "", description: "", email: ""}; } }

Selanjutnya, buka file src/app/contact-create/contact-create.component.html dan tambahkan kode berikut:

 <div class="container"> <div class="row"> <div class="col-sm-8 offset-sm-2"> <div> <form> <div class="form-group"> <label for="id">ID</label> <input [(ngModel)]="contact.id" type="text" name="id" class="form-control" placeholder="Enter ID"> <small class="form-text text-muted">Enter your contact's ID</small> <label for="name">Contact Name</label> <input [(ngModel)]="contact.name" type="text" name="name" class="form-control" placeholder="Enter your name"> <small class="form-text text-muted">Enter your contact's name</small> <label for="email">Contact Email</label> <input [(ngModel)]="contact.email" type="text" name="email" class="form-control" placeholder="Enter your email"> <small class="form-text text-muted">Enter your contact's email</small> <label for="description">Contact Description</label> <textarea [(ngModel)]="contact.description" name="description" class="form-control"> </textarea> <small class="form-text text-muted">Enter your contact's description</small> </div> </form> <button class="btn btn-primary" (click)="createContact()">Create contact</button> </div> </div> </div> </div>

Kami menggunakan kelas .form-group , .form-control untuk membuat formulir bergaya Bootstrap (lihat "Formulir" untuk informasi lebih lanjut).

Kami menggunakan direktif ngModel untuk mengikat bidang formulir ke variabel komponen. Agar pengikatan data berfungsi dengan baik, Anda perlu memberi nama pada setiap bidang formulir.

Bacaan yang disarankan : Mengelola Breakpoints Gambar Dengan Angular oleh Tamas Piros

Menjalankan Aplikasi Sudut

Pada langkah ini, mari jalankan aplikasi dan lihat apakah semuanya berfungsi seperti yang diharapkan. Buka terminal Anda, pastikan Anda berada di folder root proyek Anda kemudian jalankan perintah berikut:

 $ ng serve

Server pengembangan live-reload akan dijalankan dari alamat https://localhost:4200 . Buka browser web Anda dan navigasikan ke alamat itu. Anda akan melihat antarmuka berikut:

Demo Bootstrap Sudut: Halaman beranda
(Pratinjau besar)

Jika Anda menavigasi ke halaman Kontak, Anda akan melihat:

Demo Bootstrap Sudut: Halaman Kontak
(Pratinjau besar)

Jika Anda menavigasi ke halaman "Buat kontak", Anda akan melihat:

Demo Bootstrap Sudut: Buat halaman kontak
(Pratinjau besar)

Kesimpulan

Dalam tutorial ini, kita telah melihat cara membuat aplikasi Angular sederhana dengan antarmuka Bootstrap. Anda dapat menemukan kode sumber lengkap di GitHub dan melihat contoh langsungnya di sini.