本指南基于入门教程的第一步:基本 Angular 应用入门。

在此阶段,本在线商店应用会拥有基本的产品目录。
在以下各节中,你将向应用添加以下功能:
本应用已经用 Angular Router 导航到了 ProductListComponent。本节将介绍如何定义显示单个产品详情的路由。
product-details 组件:ng generate component product-detailsapp.module.ts 中,添加产品详情的路由,其 path 为 products/:productId,其 component 为 ProductDetailsComponent。@NgModule({
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    RouterModule.forRoot([
      { path: '', component: ProductListComponent },
      { path: 'products/:productId', component: ProductDetailsComponent },
    ])
  ],
  declarations: [
    AppComponent,
    TopBarComponent,
    ProductListComponent,
    ProductAlertsComponent,
    ProductDetailsComponent,
  ],product-list.component.html。product.id 为参数的 routerLink。RouterLink 指令可帮助你自定义 a 元素。在这里,路由或 URL 中包含一个固定的区段 /products。最后一段则是变量,插入当前产品的 id。 例如,id 为 1 的产品的 URL 是 https://getting-started-myfork.stackblitz.io/products/1。
ProductDetailsComponent 组件,其显示的内容为 “product-details works!”。请注意,预览窗口中的 URL 发生了变化。最后一个部分是 products/#,其中 # 表示你单击的路由的编号。
ProductDetailsComponent 会处理每个产品的显示工作。Angular 路由器会根据浏览器的 URL 和你定义的路径来显示组件。
在本节中,你将使用 Angular 路由器来组合 products 数据和路由信息以显示每个产品的特定详情。
product-details.component.ts 中,从 @angular/router 导入 ActivatedRoute,并从 ../products 导入 products 数组。import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { Product, products } from '../products';product 属性。export class ProductDetailsComponent implements OnInit {
  product: Product | undefined;
  /* ... */
}private route: ActivatedRoute 添加为构造函数括号内的参数,来把 ActivatedRoute 注入到 constructor() 中。export class ProductDetailsComponent implements OnInit {
  product: Product | undefined;
  constructor(private route: ActivatedRoute) { }
}Angular 路由器加载的每个组件都有自己专属的 ActivatedRoute。ActivatedRoute 中包含有关路由和路由参数的信息。
通过注入 ActivatedRoute,你可以配置此组件以使用服务。
ngOnInit() 方法中,从路由参数中提取 productId,并在 products 数组中找到相应的产品。ngOnInit() {
  // First get the product id from the current route.
  const routeParams = this.route.snapshot.paramMap;
  const productIdFromRoute = Number(routeParams.get('productId'));
  // Find the product that correspond with the id provided in route.
  this.product = products.find(product => product.id === productIdFromRoute);
}路由参数与你在此路由中定义的路径变量相对应。要访问路由参数,我们使用 route.snapshot ,它是一个 ActivatedRouteSnapshot,其中包含有关该特定时刻的活动路由信息。与此路由匹配的 URL 提供了 productId。Angular 会使用 productId 来显示每个唯一产品的详情。
ProductDetailsComponent 的模板以显示带有 *ngIf 的产品详情。如果产品存在,则此  会显示名称、价格和说明。
Product Details
  {{ product.name }}
  {{ product.price | currency }}
  {{ product.description }}
{{ product.price | currency }}
 这一行,使用 currency 管道将 product.price 从数字转换为货币字符串。管道是一种可以在 HTML 模板中转换数据的方式。
- 当用户单击产品列表中的名称时,路由器会将其导航到产品的不同 URL,显示此 
ProductDetailsComponent,并展示产品详情。 
            
                网站题目:创新互联Angular教程:Angular添加导航
                
                网页URL:http://www.csdahua.cn/qtweb/news14/331964.html
            
            
                网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
                                
            
            
                声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
                快上网