import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { ReactiveFormsModule } from '@angular/forms';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { RouterModule } from '@angular/router';
import { TopBarComponent } from './top-bar/top-bar.component';
import { ProductListComponent } from './product-list/product-list.component';
import { ProductAlertsComponent } from './product-alerts/product-alerts.component';
import { ProductDetailComponent } from './product-detail/product-detail.component';
import { CartComponent } from './cart/cart.component';
@NgModule({
declarations: [
AppComponent,
TopBarComponent,
ProductListComponent,
ProductAlertsComponent,
ProductDetailComponent,
CartComponent
],
imports: [
BrowserModule,
HttpClientModule,
AppRoutingModule,
ReactiveFormsModule,
RouterModule.forRoot([
{ path: '', component: ProductListComponent },
{ path: 'product/:productId', component: ProductDetailComponent },
{ path: 'cart', component: CartComponent}
]),
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
ในส่วนของ Component ให้เราทำการ Import FormBuilder และกำหนด formBuilder ใน Constructor [บรรทัดที่ 4, 20]
กำหนด FormBuilder โดยเราจะตั้ง checkoutForm เป็น FormGroup เพื่อเก็บค่า name และ address [บรรทัดที่ 27]
เมื่อเริ่ม App เราจะกำหนดให้ name และ address เป็นค่าว่างไว้ก่อน [บรรทัดที่ 28-29] และสร้าง Method onSubmit เพื่อนำค่ามาใช้ [บรรทัดที่ 38-41]
import { Component, OnInit } from '@angular/core';
import { CartService } from '../cart.service';
import { FormBuilder } from '@angular/forms'
@Component({
selector: 'app-cart',
templateUrl: './cart.component.html',
styleUrls: ['./cart.component.css']
})
export class CartComponent implements OnInit {
items;
shippingPrices;
checkoutForm;
constructor(
private cartService: CartService,
private formBuilder: FormBuilder
) { }
ngOnInit() {
this.items = this.cartService.getItems();
this.shippingPrices = this.cartService.getShippingPrices();
this.checkoutForm = this.formBuilder.group({
name: '',
address: ''
});
this.shippingPrices.subscribe((data) => {
window.console.log(data);
});
}
onSubmit(customerData){
console.warn('Your order has been submitted', customerData);
this.checkoutForm.reset();
}
}
สร้าง Form เพื่อรับค่าโดยกำหนดค่า formGroup เป็น checkoutForm และ formControlName เป็น name และ address
<h1>Cart</h1>
<div class="cart-item" *ngFor="let item of items; index as itemId">
<span>{{item.name}}</span>
<span>{{item.price | currency }}</span>
</div>
<div class="shipping-item" *ngFor="let shippingPrice of shippingPrices | async">
<span>{{shippingPrice.type}}</span>
<span>{{shippingPrice.price}}</span>
</div>
<form [formGroup]="checkoutForm" (ngSubmit)="onSubmit(checkoutForm.value)">
<div>
<label for="name">Name</label>
<input id="name" type="text" formControlName="name">
</div>
<div>
<label for="address">Address</label>
<input id="address" type="text" formControlName="address">
</div>
<button class="button" type="submit">Purchase</button>
</form>
รูปแสดงตัวอย่างเวลาที่เรากรอกข้อมูลลงไป เสร็จแล้วทำการกดปุ่ม Purchase เราจะได้ข้อมูล ชื่อ และ ที่อยู่ที่เรากรอก เพื่อให้ไปใช้งานยังส่วนอื่นต่อไป
ไม่มีความคิดเห็น:
แสดงความคิดเห็น