2016-05-31 43 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

相關問題