Angular 4 中有一些基本的路由概念,我不明白。
索引.html:
<base href="/">
文件结构:
- app
|- app.routings.ts
|- collections
|-- collection.component.ts
|-- collection.component.html
|-- collectioninfo.component.ts
|-- collectioninfo.component.html
|- shared
|-- header.component.html
|-- header.component.ts
我的 header.component.html 中有一个链接:
<a class="nav-link" [routerLink]="['/collections']">
Collections
</a>
如果我点击它,我会登陆 localhost:4200/collections。单击按钮时,会以编程方式更改 url(在 collection.component.ts 中):
this.router.navigate(['/collections/', collection.name]);
我最终在 localhost:4200/collections/name 上 - 一切都很好。现在我想以编程方式返回 /collections(在 collectioninfo.component.ts 中):
this.router.navigate(['/collections']);
但这不起作用。url 没有改变,我收到一个错误,说无法加载参数 - 所以显然 /collections/name 正在再次加载。认为这可能是一个路径问题,但这样的事情也不起作用:
this.router.navigate(['../collections']);
附加信息:当我在 /collections 上手动重新加载页面时,我再次被转发到主页,但我认为这是另一个问题,与此行为无关。
app.routing.ts:
const APP_ROUTES: Routes = [
...
{ path: 'collections', component: CollectionComponent },
{ path: 'collections/:id', component: CollectionInfo },
];