Bootstrap ile Angular Bir Uygulama Şekillendirme

Yayınlanan: 2022-03-10
Hızlı özet ↬ Bu eğitimde, bir Angular uygulaması oluşturmak ve arayüzü Bootstrap ile biçimlendirmek için Bootstrap 4 ve Angular 7'nin en son sürümlerini kullanacağız.

Angular 7 ile zaten bir web uygulaması oluşturmayı denediyseniz, onu bir adım öteye taşımanın zamanı geldi. Bootstrap CSS stillerini ve JavaScript dosyalarını Angular CLI kullanılarak oluşturulan bir Angular projesiyle nasıl entegre edebileceğimizi ve güzel formlar oluşturmak için form kontrollerini ve sınıflarını nasıl kullanacağımızı ve Tablo stillerini kullanarak HTML tablolarına nasıl stil uygulayacağımızı görelim.

Angular kısmı için, kişileri oluşturmak ve listelemek için basit bir istemci tarafı uygulaması oluşturacağız. Her kişinin bir kimliği, adı, e-postası ve açıklaması vardır ve kişileri bir TypeScript dizisinde saklayan basit bir veri hizmeti kullanacağız. Bunun yerine gelişmiş bir bellek içi API kullanabilirsiniz. (“Açısal Yönlendirme İçin Eksiksiz Bir Kılavuz”a bakın.)

Not : Bu öğreticinin kaynak kodunu bu GitHub deposundan alabilir ve canlı örneğini burada görebilirsiniz.

Gereksinimler

Demo uygulamasını oluşturmaya başlamadan önce, bu eğitim için gereken gereksinimleri görelim.

Temel olarak, aşağıdakilere ihtiyacınız olacak:

  • Node.js ve NPM kurulu (sadece resmi web sitesine gidebilir ve sisteminiz için ikili dosyaları indirebilirsiniz),
  • TypeScript bilgisine sahip,
  • Angular'ın çalışma tecrübesi,
  • Temel CSS ve HTML bilgisi.
Atlamadan sonra daha fazlası! Aşağıdan okumaya devam edin ↓

Angular CLI'yi Yükleme

Angular CLI'nin en son sürümünü yükleyerek başlayalım. Terminalinizde aşağıdaki komutu çalıştırın:

 $ npm install -g @angular/cli

Yazma sırasında, Angular CLI'nin v7.0.3 sürümü kuruludur. CLI zaten kuruluysa, bu komutu kullanarak en son sürüme sahip olduğunuzdan emin olabilirsiniz:

 $ ng --version

Proje Oluşturma

Angular CLI'yi kurduktan sonra, aşağıdaki komutu çalıştırarak bir Angular 7 projesi oluşturmak için kullanalım:

 $ ng new angular-bootstrap-demo

CLI daha sonra size soracaktır:

Açısal yönlendirme eklemek ister misiniz?

Y'ye basın. Ardından, size soracaktır:

Hangi stil sayfası biçimini kullanmak istersiniz?

“CSS”yi seçin.

Önyükleme Ekleme

Projeyi oluşturduktan sonra Bootstrap 4'ü kurmanız ve Angular projeniz ile entegre etmeniz gerekiyor.

İlk önce projenizin kök klasörünün içinde gezinin:

 $ cd angular-bootstrap-demo

Ardından, Bootstrap 4 ve jQuery'yi npm'den yükleyin:

 $ npm install --save bootstrap jquery

(Bu durumda, bootstrap v4.2.1 ve jquery v3.3.1 kurulur.)

Son olarak, angular.json dosyasını açın ve Bootstrap CSS ve JS dosyalarının dosya yollarını ve ayrıca jQuery'yi build hedefinin altındaki styles ve scripts dizisi dizilerine ekleyin:

 "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" ] },

Bootstrap'in Angular ile nasıl entegre edileceğine ilişkin seçenekler için bir Angular 6 projesine Bootstrap'in nasıl ekleneceğini kontrol edin.

Veri Hizmeti Ekleme

Bir proje oluşturup Bootstrap 4'ü ekledikten sonra, uygulamamızda görüntülenecek bazı demo verileri sağlamak için kullanılacak bir Angular hizmeti oluşturacağız.

Bir hizmet oluşturmak için terminalinizde aşağıdaki komutu çalıştırın:

 $ ng generate service data

Bu, iki src/app/data.service.spec.ts ve src/app/data.service.ts dosyası oluşturacaktır.

src/app/data.service.ts açın ve içeriğini aşağıdakilerle değiştirin:

 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); } }

Bazı demo kişileri içeren bir contacts dizisi, kişileri döndüren bir getContacts() yöntemi ve contacts dizisine yeni bir kişi ekleyen bir createContact() yöntemi createContact() .

Bileşen Ekleme

Veri servisini oluşturduktan sonra, uygulamamız için bazı bileşenler oluşturmamız gerekiyor. Terminalinizde şunu çalıştırın:

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

Ardından, uygulamamızda gezinmeyi etkinleştirmek için bu bileşenleri yönlendirme modülüne ekleyeceğiz. src/app/app-routing.module.ts dosyasını açın ve içeriğini aşağıdakilerle değiştirin:

 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 { }

Kullanıcıları uygulamamızı ziyaret ettiklerinde ana sayfaya yönlendirmek için yönlendiricinin yolunun redirectTo özelliğini kullanırız.

Üstbilgi ve Altbilgi Bileşenleri Ekleme

Ardından, üstbilgi ve altbilgi bileşenlerini oluşturalım:

 $ ng generate component header $ ng generate component footer

src/app/header/header.component.html dosyasını açın ve aşağıdaki kodu ekleyin:

 <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>

Bootstrap 4 ile bir gezinti çubuğu oluşturulacak ve farklı bileşenlere bağlanmak için routerLink yönergesini kullanacağız.

Bootstrap gezinme çubukları oluşturmak için .navbar , .navbar-expand{-sm|-md|-lg|-xl} ve .navbar-dark sınıflarını kullanın. (Gezinme çubukları hakkında daha fazla bilgi için Bootstrap'in “Navbar” hakkındaki belgelerine bakın.

Ardından, src/app/header/header.component.css dosyasını açın ve şunu ekleyin:

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

Ardından, src/app/footer/footer.component.html dosyasını açın ve şunu ekleyin:

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

src/app/footer/footer.component.css dosyasını açın ve şunu ekleyin:

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

Ardından, src/app/app.component.html dosyasını açın ve içeriğini aşağıdakiyle değiştirin:

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

Uygulamamızın her sayfasında bulunacakları anlamına gelen üstbilgi ve altbilgi bileşenlerini kullanarak bir uygulama kabuğu oluşturuyoruz. Değiştirilecek tek kısım yönlendirici çıkışına takılacak olan kısımdır (daha fazla bilgi için Angular web sitesindeki "Uygulama Kabuğu"na bakın).

Bootstrap Jumbotron Ekleme

Bootstrap belgelerine göre:

"Bir Jumbotron, sitenizde önemli pazarlama mesajlarını sergilemek için isteğe bağlı olarak tüm görünümü genişletebilen hafif, esnek bir bileşendir."

Ana sayfamıza bir Jumbotron bileşeni ekleyelim. src/app/home/home.component.html dosyasını açın ve şunu ekleyin:

 <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>

.jumbotron sınıfı, bir Bootstrap Jumbotron oluşturmak için kullanılır.

Liste Bileşeni Ekleme: Önyükleme Tablosu Kullanma

Şimdi veri hizmetinden bir bileşenden listeye veri oluşturalım ve tablo verilerini görüntülemek için bir Bootstrap 4 tablosu kullanalım.

İlk olarak, src/app/contact-list/contact-list.component.ts dosyasını açın ve veri hizmetini enjekte edin, ardından bileşen başlatıldığında veri almak için getContacts() yöntemini çağırın:

 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; } }

Kişiler kümesini ve selectedContact kişiyi tutan iki değişken contacts ve seçilen Kişi ekledik. Ve selectedContact kişiyi seçilenContact değişkenine atayan bir selectContact() yöntemi.

src/app/contact-list/contact-list.component.html dosyasını açın ve şunu ekleyin:

 <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>

contacts dizisinde dolaşıyoruz ve her bir kişi ayrıntısını ve bir kişiyi seçmek için bir düğmeyi görüntülüyoruz. Kişi seçilirse, daha fazla bilgi içeren bir Bootstrap 4 Kartı görüntülenecektir.

Bu, Bootstrap 4 dokümanlarından bir Kartın tanımıdır:

Kart , esnek ve genişletilebilir bir içerik kabıdır. Üstbilgi ve altbilgi seçenekleri, çok çeşitli içerik, bağlamsal arka plan renkleri ve güçlü görüntüleme seçenekleri içerir. Bootstrap 3'e aşinaysanız, kartlar eski panellerimizin, kuyucuklarımızın ve küçük resimlerimizin yerini alır. Bu bileşenlere benzer işlevler, kartlar için değiştirici sınıflar olarak mevcuttur.”

Bootstrap tarzı tablolar oluşturmak için .table ve .table-hover sınıflarını, kartlar oluşturmak için .card , .card-block , .card-title ve .card-text sınıflarını kullanırız. (Daha fazla bilgi için Tablolara ve Kartlara bakın.)

Oluşturma Bileşeni Ekleme: Önyükleme Form Denetimlerini ve Sınıflarını Kullanma

Şimdi contact-create bileşenimize bir form ekleyelim. İlk olarak, ana uygulama modülümüzdeki FormsModule içe aktarmamız gerekiyor. src/app/app.module.ts dosyasını açın, FormsModule @angular/forms öğesinden içe aktarın ve onu imports dizisine ekleyin:

 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 { }

Ardından, src/app/contact-create/contact-create.component.ts dosyasını açın ve içeriğini aşağıdakiyle değiştirin:

 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: ""}; } }

Ardından, src/app/contact-create/contact-create.component.html dosyasını açın ve aşağıdaki kodu ekleyin:

 <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>

Bootstrap tarzı bir form oluşturmak için .form-group , .form-control sınıflarını kullanıyoruz (daha fazla bilgi için “Forms”a bakın).

Form alanlarını bileşenlerin değişkenine bağlamak için ngModel yönergesini kullanırız. Veri bağlamanın düzgün çalışması için her form alanına bir ad vermeniz gerekir.

Önerilen okuma : Tamas Piros tarafından Angular ile Görüntü Kesme Noktalarını Yönetme

Angular Uygulamasını Çalıştırma

Bu adımda uygulamayı çalıştıralım ve her şeyin beklendiği gibi çalışıp çalışmadığını görelim. Terminalinize gidin, projenizin kök klasöründe olduğunuzdan emin olun ve ardından aşağıdaki komutu çalıştırın:

 $ ng serve

https://localhost:4200 adresinden bir canlı yeniden yükleme geliştirme sunucusu çalışacaktır. Web tarayıcınızı açın ve bu adrese gidin. Aşağıdaki arayüzü görmelisiniz:

Angular Bootstrap demosu: Ana sayfa
(Büyük önizleme)

Kişiler sayfasına giderseniz şunları görmelisiniz:

Angular Bootstrap Demo: Kişiler Sayfası
(Büyük önizleme)

"Kişi oluştur" sayfasına giderseniz şunları görmelisiniz:

Angular Bootstrap Demo: İletişim sayfası oluşturun
(Büyük önizleme)

Çözüm

Bu eğitimde, Bootstrap arayüzü ile basit bir Angular uygulamasının nasıl oluşturulacağını gördük. Kaynak kodunun tamamını GitHub'da bulabilir ve canlı örneğini burada görebilirsiniz.