2016-05-31 44 views
2

Angular的粉丝,我遵循Angular2关于路由的官方文档(https://angular.io/docs/ts/latest/guide/router.html)来构建我的第一个测试应用程序,并陷入以下难以理解的行为。在AppComponent为什么在Angular2中强制使用routerLink?

我的模板部分看起来像:

template: ` 


<h1>Component Router</h1> 
    <nav> 
    <a [routerLink]="['/crisis-center']">Crisis Center</a> 
    <a [routerLink]="['/heroes']">Heroes</a> 
    </nav> 
    <router-outlet></router-outlet> 
`, 

它的工作原理。我可以通过直接在我的浏览器中输入网址或点击由routerLink指令生成的定义链接来访问/危机中心或/英雄。

现在,我不想再显示导航菜单,但我希望我的应用程序直接在浏览器栏中输入网址来导航到/危机中心或/英雄,所以我删除了导航块,我的模板现在看起来像:

template: ` 
    <h1>Component Router</h1> 
    <router-outlet></router-outlet> 
`, 

但是,这个新版本不显示组件特定的内容,只显示父模板部分。
注意:只保留一个routerLink指令时,组件英雄和危机中心都可以导航到。

我发现的唯一解决方法是将display:none应用于我的导航标记。

为什么指令routerLink必须具有路由工作?对我来说,这只是一个生成url的指令,不会影响路由过程...

回答

2

这是一个已知问题。您可以在路由器或者注入到你的根组件

export class AppComponent { 
    constructor(router Router){} 
} 

如果没有这些变通路由器不是实例之一,因此什么都不做。

+0

错过了这一个。非常感谢! – krakax

相关问题