需求如标题所示,下面是详细步骤介绍。 首先,你需要确保你的环境中已经安装了Angular CLI。如果没有,可以通过以下命令安装: npm install -g @angular/cli 然后你可以创建一个新的Angular项目: ng new product-appcd product-app 创建一个名为 ng generate component product 在 <input [(ngModel)]="searchText" (input)="search()" placeholder="Search products"><ul> <li *ngFor="let product of products" (click)="goToDetail(product.id)"> {{product.name}} </li></ul> 在 import { Component } from '@angular/core';import { Router } from '@angular/router';@Component({ selector: 'app-product', templateUrl: './product.component.html', styleUrls: ['./product.component.css']})export class ProductComponent { searchText = ''; products = []; constructor(private router: Router) {} search() { // TODO: Call API to search products by name // This is just a mock this.products = [ {id: 1, name: 'Product 1'}, {id: 2, name: 'Product 2'}, // ... ]; } goToDetail(productId) { this.router.navigate(['/product', productId]); }} 接下来,我们需要为产品详情页面创建一个组件: ng generate component product-detail 在 import { Component, OnInit } from '@angular/core';import { ActivatedRoute } from '@angular/router';@Component({ selector: 'app-product-detail', templateUrl: './product-detail.component.html', styleUrls: ['./product-detail.component.css']})export class ProductDetailComponent implements OnInit { product = null; constructor(private route: ActivatedRoute) {} ngOnInit() { const productId = this.route.snapshot.paramMap.get('id'); // TODO: Call API to get product detail by id // This is just a mock this.product = {id: productId, name: 'Product ' + productId}; }} 在 <h1>{{product.name}}</h1><!-- More product details here --> 最后,我们需要在 import { NgModule } from '@angular/core';import { Routes, RouterModule } from '@angular/router';import { ProductComponent } from './product/product.component';import { ProductDetailComponent } from './product-detail/product-detail.component';const routes: Routes = [ { path: 'product', component: ProductComponent }, { path: 'product/:id', component: ProductDetailComponent }, // Redirect to product list by default { path: '', redirectTo: '/product', pathMatch: 'full' },];@NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule]})export class AppRoutingModule { } 这只是一个非常基础的示例。在实际项目中,你可能需要用到更多的特性,如表单验证,错误处理,状态管理等。 |
|