我想做多路由路由:
对于每个lvl,我有一个视图,但动态更改数据。
我该怎么做并让我的网址像:
host.com/laptop/laptop-list/apple/234-product
不像我在下面:
host.com/laptops/1/2/12-product
在组件之间传递ID是否正确?或者我必须为所有这些创建数据库服务,如果是,我如何使用多个API
host.com/api/laptops
host.com/api/laptopProducts 等等
...
我这样做了,(它正在工作)但是它传递了我的身份证。
<a [routerLink]="laptop.id" *ngFor="let laptop of laptops">
component.ts
id = 0;
constructor(private database: DatabaseService, private activeRoute: ActivatedRoute) {
this.activeRoute.params.subscribe(params => {
this.id = parseInt(params["id"]);
});
}
component.html
<div *ngFor="let laptopProduct of laptopProducts">
<div *ngIf="laptopProduct.laptopID === id">
{{laptopProduct.name}}
</div>
</div>
一切正常但我想在网址中使用名称而不是ID
答案 0 :(得分:0)
在您的组件中创建一个词典:
var dict = []; // create an empty array
id;
constructor(private database: DatabaseService, private activeRoute:
ActivatedRoute) {
dict.push({
key: "1",
value: "Apple"
});
this.activeRoute.params.subscribe(params => {
this.id = dict[parseInt(params["id"])].value;
});
}
但是,您不应该使用参数来获取此ID。使用服务并在您的组件之间共享ID。