iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
0
Modern Web

把前後分離製作的網站組起來系列 第 17

接續第11篇的ANGULAR

  • 分享至 

  • xImage
  •  

完成用https://getbootstrap.com/ 初始化之後準備開工~
https://ithelp.ithome.com.tw/upload/images/20201104/20119035SO6SHa3JOh.png

https://ithelp.ithome.com.tw/upload/images/20201104/20119035d7CD2Squ63.png


開始建立很多個有.css+.html+.spec.ts+.ts的vomponents
建立的方法就是在cmd打上語法

要下新的指令前要先按ctrl+c然後選Y在cmd打上語法ng generate component components/product-list
新增出來5個檔
https://ithelp.ithome.com.tw/upload/images/20201105/20119035fPeOpRt4Vl.png


到資料夾src-app-app.component.html新增內文

https://ithelp.ithome.com.tw/upload/images/20201105/20119035DsXXPe56UW.png
cmd再按ng serve --open就
https://ithelp.ithome.com.tw/upload/images/20201105/20119035KkmJPelkhx.png
看到網頁http://localhost:4200/
https://ithelp.ithome.com.tw/upload/images/20201105/20119035EifUag8zoj.png

要下新的指令前要先按ctrl+c然後選在cmd打上語法ng generate class common/product
新增出來2個檔
https://ithelp.ithome.com.tw/upload/images/20201105/2011903524kCNIpXz8.png


對應著在springboot的http://localhost:8080/api/products 跑出來的
變數的數據.來寫變數

`{
  "_embedded" : {
    "products" : [ {
      "sku" : "BOOK-TECH-1000",
      "name" : "JavaScript - The Fun Parts",
      "description" : "Learn JavaScript",
      "unitPrice" : 19.99,
      "imageUrl" : "assets/images/products/placeholder.png",
      "active" : true,
      "unitsInStock" : 100,
      "dateCreated" : "2020-09-14T19:17:46.000+0000",
      "lastUpdated" : null,

開始寫code

string對應敘述
number對應數字
boolean對應的變數賦true/false如果是以外的值,將會報錯
Date是日期時間


/images/emoticon/emoticon06.gif
typeScript是很重視空格的
sku: string;在中間要空一格不然會報錯+前面要空格


https://ithelp.ithome.com.tw/upload/images/20201109/20119035IkACC8W7MI.png


   sku: string;
   name: string;
   description: string;
   unitPrice: number;
   imageUrl: string;
   active: boolean;
   unitsInStock: number;
   dateCreated: Date;
   lastUpdated: Date;


}



然後再新增要確認是有cd angular-ecommerce(進入angular-ecommerce這個檔)在cmd打上語法ng generate service services/product
https://ithelp.ithomehttps://ithelp.ithome.com.tw/upload/images/20201111/2011903500NZiCzFCy.png.com.tw/upload/images/20201109/20119035WGXM8tqB3R.png


然後到app.module.ts去新增code
https://ithelp.ithome.com.tw/upload/images/20201109/201190350RZWPPrukl.png

,HttpClientModule 在前面的,很重要要記得加
https://ithelp.ithome.com.tw/upload/images/20201109/20119035QXfsbJCdnD.png
不過比較麻煩的是要自己去手刻import
/images/emoticon/emoticon04.gif

還有providers: [ProductService],

https://ithelp.ithome.com.tw/upload/images/20201109/20119035nHgoSyKBPA.png


然後到product.service.ts(service code打錯前後端就連不起來了喔~)

https://ithelp.ithome.com.tw/upload/images/20201111/20119035F7rGQo39iV.png

import { HttpClient } from '@angular/common/http';
import { Product } from '../common/product';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

@Injectable({
  providedIn: 'root'
})
export class ProductService {

  private baseUrl = 'http://localhost:8080/api/products';

  constructor(private httpClient: HttpClient) { }

  getProductList(): Observable<Product[]> {
    return this.httpClient.get<GetResponse>(this.baseUrl).pipe(
      map(response => response._embedded.products)
    );
  }
}

interface GetResponse {
  _embedded: {
    products: Product[];
 };
}


https://ithelp.ithome.com.tw/upload/images/20201111/20119035j4LXDt0Bwe.png


import { ProductService } from './product.service';

describe('ProductService', () => {
  beforeEach(() => TestBed.configureTestingModule({}));

  it('should be created', () => {
    // tslint:disable-next-line: deprecation
    const service: ProductService = TestBed.get(ProductService);
    expect(service).toBeTruthy();
  });
});


開始要把前後端接起來了喔~

應該可以好好地把坑補起來
/images/emoticon/emoticon07.gif

關於我們在購物網站上的買東西的要買的總數和金額

是都是使用前端和後端網頁組起來的喔~
/images/emoticon/emoticon05.gif

不是使用資料庫在加減乘除~使用資料庫加減乘除會比一般使用再更慢~
這樣就不能符合IT主要幫人解決 時間+金錢的意義的喔/images/emoticon/emoticon20.gif

DEAR ALL 我們明天見/images/emoticon/emoticon08.gif


上一篇
創造~REST APIs
下一篇
開始要把前後端接起來了
系列文
把前後分離製作的網站組起來30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言