2017-11-25 267 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浏览器而导致我的回答该消息没有得到,虽然在那些两个浏览器锚的工作。