2017-04-05 32 views
0

我的Angular項目結構如下:
Index.html包含<app-root></app-root>,這是我的app.component。
我的應用程序組件具有以下結構:爲什麼我的路由器不能重定向?

<md-toolbar> 
    <ng-template #notLoggedIn> 
    <a md-icon-button [md-menu-trigger-for]="topnavUserMenu"> 
     <md-icon>person_add</md-icon> 
    </a> 
    <md-menu #topnavUserMenu="mdMenu"> 
     <button md-menu-item> 
     <md-icon>fingerprint</md-icon> 
     <span><a [routerLink]="['/login']" routerLinkActive="active">Login</a></span></button> 
     <button md-menu-item> 
     <md-icon>mode_edit</md-icon> 
     <span><a [routerLink]="['/signup']">Register</a></span></button> 
    </md-menu> 
    </ng-template> 
</md-toolbar> 
<md-sidenav-container> 
    <router-outlet></router-outlet> 
</md-sidenav-container> 

基本上,app.component是跨應用持久的,並且所有的內容都通過router-outlet呈現。如果用戶從工具欄菜單中選擇「登錄」,則所需的行爲是應用程序重定向到URL,但是,當用戶單擊鏈接時,什麼都不會發生。

這是怎麼發生的?我如何解決它?

注:我知道我可以通過添加導航功能,我app.component並將其綁定到該按鈕的點擊,例如做務實:

test() { 
    this.router.navigate(['/login']); 
    } 

我更感興趣的是,爲什麼它不不能使用HTML指令,但它可以完美地與JS一起工作。

+0

試試這個:Go to login Avi

+0

有你定義的TS文件的所有路由? – jmw5598

+0

@Avi,沒有工作... – Moshe

回答

0

對於那些新手而言,這些信息很有用,@ birwin的聲明是正確的 - 錨點標記在按鈕中是非法的。您需要更改:

<button md-menu-item> 
     <md-icon>mode_edit</md-icon> 
     <span><a [routerLink]="['/signup']">Register</a></span> 
</button> 

到:

<button md-menu-item [routerLink]="['/signup']"> 
     <md-icon>mode_edit</md-icon> 
     <span>Register</span> 
</button> 
相關問題