8. 路由

2019-08-01  本文已影响0人  晨曦Bai

1. 注册路由

@NgModule({
imports: [
BrowserModule,
RouterModule.forRoot([
{path: ' ', component: ProductListComponent},
{path: 'products/:productId', component: ProductDetailsComponent},
])
]
})

routerLink 定义用户是如何导航到在组件模板中声明的路由(或URL)的。

》 src/app/product-list/product-list.component.html

<div *ngFor="let product of products; index as productId">
<h3>
<a [title]="product.name+ 'details'" [routerLink]="['/products', productId]">
{{product.name}}
</a>
</h3>
<>

2. 使用路由信息

用 product-detail 组件显示每个产品的详细信息

》src/app/product-details/product-details.component.ts

import {Component, OnInit} from '@angular/core'
import {ActivatedRoute } from '@angular/router'
import {product} from '../products'
export class ProductDetailsComponent implements OnInit {
product;
constructor(
private route: ActivatedRoute,
){}
ngOnInit() {
this.route.paramMap.subscribe(params => {this.product= products[+params.get('productId')]})
}
}

》src/app/product-details/product-details.component.html

<h2>Product Details</h2>  
<div *ngIf ="product"> 
 <h3>{{ product.name }}</h3> 
 <h4>{{ product.price | currency }}</h4> 
 <p>{{ product.description }}</p>  
</div>

上一篇 下一篇

猜你喜欢

热点阅读