Angular, часть 4: создание отдельной страницы сведений о продукте Создать проект электронной коммерции Angular
создать страницу с одним продуктом показать продукт
Давайте создадим страницу сведений о продукте
Страница сведений о продукте
Вот пример того, как вы можете создать одну страницу продукта в приложении Angular:
- Создайте новый компонент для отдельной страницы продукта, назовем его
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 г.
В целом"