Подробнее: - https://softwaretechit.com/angular-part-4-create-single-product-details-page-angular-app-create-ecommerce-angular-project/



Angular, часть 4: создание отдельной страницы сведений о продукте Создать проект электронной коммерции Angular

создать страницу с одним продуктом показать продукт

Давайте создадим страницу сведений о продукте

Страница сведений о продукте

Вот пример того, как вы можете создать одну страницу продукта в приложении Angular:

  1. Создайте новый компонент для отдельной страницы продукта, назовем его product-page.

single-product.component.html

В шаблоне компонента product-page (product-page.component.html) вы можете отобразить детали продукта с помощью объекта product.

<section class="container border border-info">
<!-- <h1>single-product</h1> -->
<div class="m-3  ">
<ng-container  *ngFor="let product of product_list">
<div class="row" *ngIf="product !==undefined">
<div class="col-5 vertical-center">
<img src={{product.image_url}} alt={{product.title}} width="100%" height="auto">
</div>
<div class="col-6 vertical-center">
<div class="">
<h1>{{product.title | slice:0:100}}</h1>
<h4>Price : {{product.price}}</h4>
<h4>Rating : {{product.rating}}</h4>
<h4>Review : {{product.review}}</h4>
<button (click)="buyThis(product.link)" class="btn btn-warning  px-5 shadow-lg rounded" ><strong>Buy Now</strong></button>
</div>
</div>
<div class="row my-2">
 
  <ul class=" nav nav-pills justify-content-center " id="pills-tab" role="tablist">
    <li class="nav-item mx-2 shadow-lg bg-white rounded" role="presentation">
      <button class="active btn btn-outline-warning" id="pills-home-tab" data-bs-toggle="pill" data-bs-target="#pills-home" type="button" role="tab" aria-controls="pills-home" aria-selected="true">Description</button>
    </li>
    <li class="nav-item mx-2 shadow-lg bg-white rounded" role="presentation">
      <button class="btn btn-outline-warning" id="pills-profile-tab" data-bs-toggle="pill" data-bs-target="#pills-profile" type="button" role="tab" aria-controls="pills-profile" aria-selected="false">Write Review</button>
    </li>
    
  </ul>
</div>
  <div class="tab-content" id="pills-tabContent">
    <div class="tab-pane fade show active " id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab">
      <h3 class="text-center text-uppercase border border-warning">Description</h3>
      <blockquote class="blockquote text-break">{{product.description}}</blockquote>
    </div>
    <div class="tab-pane fade" id="pills-profile" role="tabpanel" aria-labelledby="pills-profile-tab">
      <h3 class="text-center text-uppercase border border-warning">Reviews</h3>  
    </div>
    
  </div>
  
  
</div>
</ng-container>
</div>
</section>
<br/>
<br/>

один продукт.component.ts

В классе компонента product-page (product-page.component.ts) вы можете получить идентификатор продукта из параметров маршрута и использовать его для вызова API для получения сведений о продукте. Вы можете сделать это, внедрив ActivatedRoute в конструктор и используя snapshot.paramMap для извлечения идентификатора.

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ProductModel } from '../models/product.model';
import { ProductService } from '../services/product.service';
@Component({
  selector: 'app-single-product',
  templateUrl: './single-product.component.html',
  styleUrls: ['./single-product.component.css'],
  providers:[ProductService]
})
export class SingleProductComponent implements OnInit {
  product_list:ProductModel[]=[];
  constructor(private http_api:ProductService,private route:ActivatedRoute) { }
  ngOnInit(): void {
    let id:number;
  this.route.params.subscribe(params=>id=params['id'])
  this.http_api.getSingleProduct(id).subscribe((data)=>this.product_list=data['result'])
console.log(this.product_list);
  
}
 buyThis(url:any){
  window.open(url)
 }

}

В вашем файле product.service.ts вы должны создать новую функцию getProduct(id: string), которая будет обрабатывать вызов API для получения продукта по идентификатору.

позвонить в службу

Наконец, в файле app-routing.module.ts добавьте новый маршрут для компонента product-page и включите параметр для идентификатора продукта.

Это базовый пример, и вы можете настроить реализацию в соответствии с вашими потребностями. Вы можете добавить различные функции, такие как добавление продукта в корзину, отображение связанных продуктов и т. д.

Angular, часть 5: создание страницы корзины товаров в Angular и API URL | Создать EAccessoriesShop Angular

20 января 2023 г.

В целом"

Angular: создание списка продуктов и вызов API | Создать проект электронной коммерции Angular с вызовом API

16 января 2023 г.

В целом"

Angular, часть 6–1: добавление товара в корзину и обновление таблицы с помощью Flask API | Создать электронную коммерцию Angular