Angular 2路由器 - 追加url而不是导航到main

时间:2017-04-13 09:18:53

标签: angular angular2-routing

我有以下配置:

带2个链接的主导航:

<a href="#" [routerLink]="['/first']" first </a>
<a href="#" [routerLink]="['/second']"> second </a>

在第一个组件中,我有一个“详细信息”链接:

<div [routerLink]="['/detail', item.id]"> 

我的app.routing.ts:

{path: 'first', component: FirstComponent},
{path: 'second', component: SecondComponent},
{path: 'detail/:id', component: DetailComponent }

在导航到/ detail:item的第一个组件中,一切正常。 但是当我尝试从主导航中点击B链接时,我得到一个错误的URL。 所以基本上是:

1)转到第一个组件&gt;&gt;&gt;本地主机/第一

2)转到项目详情&gt;&gt;&gt;本地主机/细节/ someId

3)尝试转到第二个组件(localhost / Second)&gt;&gt;&gt;但它是localhost / detail / Second(并且每次点击项目细节都会在网址上附加另一个“/ detail”,所以我们得到/ detail / detail / Second等。)

我尝试了它而没有'/',但效果是一样的。 我发现如果我在路由中添加useHash:true,一切都按预期工作。

 export const ROUTING: ModuleWithProviders = RouterModule.forRoot(ROUTES, {useHash:true}); 

但是我不想要哈希。

我的问题是 - 为什么这是使用哈希并且不是没有。另外,我如何解决附加问题。关于路由的任何一般解释将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

import { APP_BASE_HREF } from '@angular/common';

问题是我使用{提供:APP_BASE_HREF,useValue:'。/'}(带点) 而不是{provide:APP_BASE_HREF,useValue:'/'}。删除点固定它。