我目前处境非常奇怪。我的结构有三个级别。好吧,基本上,我有一个关于导航的document.getElementById('iframeId').src = url;
目录。例如:
parent -> child -> subchild
Vehicles -> Cars -> Fast cars
Vehicles -> Cars -> Slow cars
现在,我获得的数据以父项没有项目的方式表示。如果我仅使用Vehicles -> Airplanes -> Commercial Airplanes
发出请求,我就什么也得不到,Vehicles
和Cars
都有内容。但这只是数据的结构,它超出了我的控制范围。
因此,很明显,我的网址可以随时为Fast cars
或my-app.com/vehicles/cars
。这两个路径都需要显示项目列表。此外,用户也可以输入my-app.com/vehicles/cars/slow-cars
。重要的是网址是这样的,而不是my-app.com/vehicles
。
为此规范创建路由(以及整个结构)有点多。这是我接触这件事的方式。
由于我还没有找到关于如何创建可选参数的任何参考,我不得不重复路由,如下所示:
,child=cars
现在,我真的很讨厌这个。这是重复和诸如此类的,但鉴于目前的情况,我不知道如何以不同的方式做到这一点。
加载const routes: Routes = [{
path: '',
component: ArticlesHomeComponent
}, {
path: ':first',
component: ArticlesHomeComponent
}, {
path: ':first/:second',
component: ArticlesHomeComponent
}, {
path: ':first/:second/:third',
component: ArticlesHomeComponent
}];
后,我会查看有多少参数可用。如果ArticlesHomeComponent
不是,我会重定向到导航中的第一项。如果first
也不可用,我会得到父亲的第一个孩子并重定向。只有这样才能显示一些内容。
采用这种方法似乎有点不对劲。你们觉得怎么样?