เราจะเริ่มสร้าง Component โดยใช้ Tutorial Your First App เป็น Guide
โดยขั้นแรกเราจะทำ Title แล้วก็ปุ่ม Cart พร้อมกับ Product 1 บรรทัดตามรูป
เริ่มโดยใช้คำสั่ง ng generate component [component-name]
ng generate component top-bar ng generate component product-list
เราจะได้ Folder ที่เก็บ Component 2 ตัวตามชื่อที่เรากำหนดไป และตัวคำสั่ง ng ก็ได้ทำการเพิ่มข้อมูล Component ให้เราแล้วใน "app.module.ts"
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { TopBarComponent } from './top-bar/top-bar.component';
import { ProductListComponent } from './product-list/product-list.component';
@NgModule({
declarations: [
AppComponent,
TopBarComponent,
ProductListComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
เสร็จแล้วไปดู Selector ในไฟล์ Type Script ทั้ง top-bar และ product-list
เราจะได้ชื่อ Selector ใช้เป็น Tag ชื่อ app-top-bar และ app-product-list
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-top-bar',
templateUrl: './top-bar.component.html',
styleUrls: ['./top-bar.component.css']
})
export class TopBarComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-product-list',
templateUrl: './product-list.component.html',
styleUrls: ['./product-list.component.css']
})
export class ProductListComponent implements OnInit {
constructor() { }
ngOnInit() {
}
}
ก็ทำการเพิ่ม HTML ใน top-bar.component.html และ product-list.component.html เสร็จแล้วไปใส่ใน app.component.html เพื่อแสดง
ใช้คำสั่ง ng serve --watch ในการสั่ง Sever ทำงาน
<h1>Top Bar</h1>
<h1>Product List</h1>
<app-top-bar></app-top-bar> <app-product-list></app-product-list> <router-outlet></router-outlet>
ถ้าหน้าออกมาเป็นแบบนี้ก็แสดงว่าใช้งานได้
Style และ Template
ให้เราทำการเพิ่ม Style ไป 2 ที่โดย Copy จากตรงนี้ไปเลย โดยไฟล์ "index.html" เพิ่มส่วนทีเป็น icon และไฟล์ "style.css" จะเป็นกรอบสีน้ำเงิน<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>MyApp</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"/> </head> <body> <app-root></app-root> </body> </html>
/* Global Styles */
* {
font-family: 'Roboto', Arial, sans-serif;
color: #616161;
box-sizing: border-box;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
margin: 0;
}
.container {
display: flex;
flex-direction: row;
}
router-outlet + * {
padding: 0 16px;
}
/* Text */
h1 {
font-size: 32px;
}
h2 {
font-size: 20px;
}
h1, h2 {
font-weight: lighter;
}
p {
font-size: 14px;
}
/* Hyperlink */
a {
cursor: pointer;
color: #1976d2;
text-decoration: none;
}
a:hover {
opacity: 0.8;
}
/* Input */
input {
font-size: 14px;
border-radius: 2px;
padding: 8px;
margin-bottom: 16px;
border: 1px solid #BDBDBD;
}
label {
font-size: 12px;
font-weight: bold;
margin-bottom: 4px;
display: block;
text-transform: uppercase;
}
/* Button */
.button, button {
display: inline-flex;
align-items: center;
padding: 8px 16px;
border-radius: 2px;
font-size: 14px;
cursor: pointer;
background-color: #1976d2;
color: white;
border: none;
}
.button:hover, button:hover {
opacity: 0.8;
font-weight: normal;
}
.button:disabled, button:disabled {
opacity: 0.5;
cursor: auto;
}
/* Fancy Button */
.fancy-button {
background-color: white;
color: #1976d2;
}
.fancy-button i.material-icons {
color: #1976d2;
padding-right: 4px;
}
/* Top Bar */
app-top-bar {
width: 100%;
height: 68px;
background-color: #1976d2;
padding: 16px;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
app-top-bar h1 {
color: white;
margin: 0;
}
/* Checkout Cart, Shipping Prices */
.cart-item, .shipping-item {
width: 100%;
min-width: 400px;
max-width: 450px;
display: flex;
flex-direction: row;
justify-content: space-between;
padding: 16px 32px;
margin-bottom: 8px;
border-radius: 2px;
background-color: #EEEEEE;
}
/*
Copyright Google LLC. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://angular.io/license
*/
ส่วนของ Template ให้เราทำการเพิ่ม Code ส่วนของ top-bar.component.html, product-list.component.html และ app.component.html
<a href="#">
<h1>My Store</h1>
</a>
<a href="#" class="button fancy-button">
<i class="material-icons">shopping_cart</i>Checkout
</a>
<h1>Product List</h1>
<app-top-bar></app-top-bar> <app-product-list></app-product-list> <router-outlet></router-outlet>
เมื่อทำการ Save ไฟล์ทั้งหมดแล้วกลับไปดูหน้า App ของเราจะได้แบบที่ต้องการแล้ว
ไม่มีความคิดเห็น:
แสดงความคิดเห็น