2017-11-25 351 views
0

我有一個新的Angular 5 CLI應用程序,並已爲應用程序的頂部部分構建了navmenu組件。當我在Edge和Chrome中點擊我的菜單項時,它完美地工作,並遵循app.module.ts中定義的路線。但是,當我點擊IE11或Firefox中的鏈接沒有任何反應。我去了並啓用了polyfills.ts中列出的所有polyfills,但仍然沒有改變,儘管他們確實解決了在IE11中渲染材質圖標的問題。Angular5沒有響應與路由器鏈接和按鈕在IE和火狐

<span *ngIf="isLoggedIn() == false"> 
     <button [routerLinkActive]="['link-active']" mat-icon-button > 
     <a [routerLink]="['/login']"> 
      <mat-icon>account_circle</mat-icon> Login 
     </a> 

     </button> 
    <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
    </span> 

如果我參加了

 <a [routerLink]="['/login']"> 
      <mat-icon>account_circle</mat-icon> Login 
     </a> 

一部分出來按鈕節點,我可以正確地點擊它,它航線IE11和Firefox,所以我的路線是好的。不知怎的,激活錨點在IE11和Firefox中不起作用。有沒有人知道這可能是什麼? Edge和Chrome完美工作。

回答

3

對此的回答其實很簡單。實際上不需要

的<按鈕>標籤和氈圖標按鈕樣式可以被施加到一個<標籤>

<a [routerLink]="['/login']" [routerLinkActive]="['link-active']" mat-icon-button> 
     <mat-icon>account_circle</mat-icon> Login 
    </a> 

即達到所希望的結果。我發現這個按鈕遮住了IE和Firefox的錨點。當我把一個測試

onclick="this.children[0].children[0].click()" 

按鈕上的路線在Firefox和IE瀏覽器而導致我的回答該消息沒有得到,雖然在那些兩個瀏覽器錨的工作。