就是这样......
BASE
Angular 4.2.1
Angular CLI 1.0.3
问题
我已将网址路由定义为path: 'shop/:shopId',
我有一个shop component
。在商店组件中,我正在阅读shopId并将其传递给API。一切都很好。
BUT
商店的网址有时候会像以下一样
如果是#2
和#3
,我无法将women/shirts
和men/titan/watches
作为shopId。
注意:我对网址没有任何限制, 它可以达到10到15个参数,因此定义10到15条路线会很混乱。
它转到另一个有2个,3个或4个slaces的URL。
我的问题是,是否可以将shop/
之后的所有内容设为shopId
。
如果是,怎么样?
如果不是,可能是什么解决方案,我应该为2个,3个,4个,5个或6个参数创建单独的路径吗?
答案 0 :(得分:1)
这是你的路线
cd.amount = chargeAmount;
我已将{
path: 'shop',
component: ShopParentComponent,
children : [{
path: '**',
component: ShopComponent
}]
}
定义为父路由,并为其定义了shop
子路由。 Child正在使用**
作为组件,而Parent正在使用ShopComponent
。
在ShopParentComponent
构造函数中,我正在使用
ShopComponent
像这样导入路线
_router.events.subscribe((val) => {
console.log(val);
if(val instanceof NavigationEnd) {
var url = this._router.url;
//do anything with url
}
});
这将为您提供当前路线
例如,在此路线的情况下
import { Router, ActivatedRoute, ParamMap, NavigationStart, NavigationEnd } from '@angular/router';
它会给你
http://localhost/shop/a/b/c/d
您可以轻松操作此网址供您使用。
想知道你的父组件是什么,只有一个
/shop/a/b/c/d