【问题标题】:How to make a link inside element with router link in Angular 2如何在Angular 2中使用路由器链接在元素内部创建链接
【发布时间】:2017-09-24 07:58:03
【问题描述】:

我需要在 div 元素上创建路由器链接,但还要在其中添加另一个锚点或打开菜单的按钮。由于路由器链接菜单无法打开。单击按钮会触发路由器链接。我怎样才能让它发挥作用?

<div [routerLink]="/foo">
    <span>Title</span>
    <button (click)="openMenu()">Open menu</button>
</div>

其实我用的是Angular Material,其实问题是这样的:

<md-card [routerLink]="/foo">
    <span>Title</span>

    <button md-icon-button [mdMenuTriggerFor]="menu">
      <md-icon>more_vert</md-icon>
    </button>

    <md-menu #menu="mdMenu">
      <button md-menu-item (click)="rename()">
        <md-icon>create</md-icon>
        <span>Rename</span>
      </button>
      <button md-menu-item (click)="share()">
        <md-icon>share</md-icon>
        <span>Share</span>
      </button>
    </md-menu>
</md-card>

【问题讨论】:

  • 你试过我添加的解决方案了吗?

标签: angular angular2-routing angular-material2


【解决方案1】:

试试下面,

<button md-icon-button [mdMenuTriggerFor]="menu" (click)="open($event)" >
  <md-icon>more_vert</md-icon>
</button>

在对应的ts文件中,

open(e){
  // this will stop event to propagate to work on link click.
  e.stopPropagation();
}

希望这会有所帮助!

【讨论】:

猜你喜欢
  • 2021-04-09
  • 2021-07-10
  • 2017-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多