2017-06-23 30 views
1

子要素をクリックしても自分自身をクリックして反応させないようにするには、[routerLink]、の親要素は子要素は実行できません(click)="delete()"の関数delete()[routerLink]では、親(それは/ /製品にナビゲート:id)を子要素に[routerLink]を適用しない方法は?

<div class="item"> 

<!-- parent element --> 
    <a [routerLink]="['/product/'+product.id]"> 
     <div class="figure"> 
      <div class="sides"> 
      <div class="side"> 
       <div class="card"> 
<img class="img" [src]="product.thumb"> 
       <div class="content"> 
        <div class="header">{{product.name}}</div> 
        <div class="meta"> <span>product.category</span> </div> 
       </div> 
       <div class="extraContent"> <span class="ui right floated black"> 

       <!-- child element --> 
       <a (click)="delete()" ><i class="red trash outline icon"></i></a></span> <span><i class="deleteProductIcon"></i></span> </div> 
       <!-- child element --> 

       </div> 
      </div> 
      </div> 
     </div> 
     </a> 
<!-- parent element --> 

</div> 

私が上div[routerLink]を移動しようとしましたが、あなたの関数delete(中stopPropgation場合、それはまだ同じ行動

答えて

1

をやって)イベントはアンカータグwまでバブルしませんrouterLink

// pass in the event object to the delete function 
<a (click)="delete($event)" ><i class="red trash outline icon"></i></a> 

// in the delete function, stop event propagation 
delete(event){ 
    event.stopPropagation(); 
} 
+0

i番目の私はこの試み: '(イベント)を削除し、{ するevent.stopPropagation()。 アラート( 'deleted'); } アラート()はうまくいきましたが、それ以降は/ product /:にナビゲートしています。id – FlashCode

+0

@FlashCode DOMを切り替えることはできますか?親要素のすべてをルータリンクにラップする必要がありますか?その要素(削除アイコン以外)の何かをクリックすると、新しいページに移動するのは奇妙なことです。私は削除アイコンと別のナビゲーションアイコンがあることを期待しています – LLai

+1

ええ、あなたが正しいです私は削除アイコンをラップしない方法を見つける必要があり、他の人を維持する – FlashCode

関連する問題