2017-04-26 5 views
1

div要素にルーターリンクを作成する必要がありますが、内部に別のアンカーまたはメニューを開くボタンも追加する必要があります。ルータのリンクメニューのために開くことができません。ボタンをクリックすると、ルータのリンクが起動します。どうすればそれを動作させることができますか?ルーラーリンクで要素内のリンクを角度2で作成する方法

<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> 
+0

追加したソリューションを試しましたか? –

答えて

2

、下記のTSファイルを対応する内

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

を試し、

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

希望このヘルプs !!

+0

ありがとう、私はあなたのコードを '(click)=" $ event.stopPropagation() "'に単純化して動作します。私はここで非常によく似た質問を見つけましたhttp://stackoverflow.com/questions/35274028/stop-event-propagation-in-angular-2 – user3812733

関連する問題