ionic2 离子列表,带有一个按钮,都具有(单击)事件
ionic2 ion-list with a button both having (click) event
我想要实现的是,当我点击下载按钮时,它应该做一些其他事情,当点击该项目时,它应该打开一个新的 window
<ion-list>
<ion-item *ngFor="let reading_material of reading_materials" (click)="gotoReadingMaterial(reading_material)">
{{reading_material.title}}
<ion-icon item-right name="download" (click)="downloadMaterial(reading_material)"></ion-icon>
</ion-item>
</ion-list>
但是当我点击下载按钮时,这两个事件都被触发了。
有什么方法可以在我点击下载按钮时抑制项目事件吗??
您可以使用event.stopPropagation();
解决这个问题。
请看this plunker。
如您所见,我还将 $event
对象发送给两种方法
<ion-list>
<ion-item *ngFor="let item of items" (click)="open($event, item)">
{{ item }}
<ion-icon (click)="download($event, item)" item-right name="download"></ion-icon>
</ion-item>
</ion-list>
然后我使用该信息停止事件的传播,因此只有在单击下载图标时才会执行下载方法
public open(event, item) {
event.stopPropagation();
alert('Open ' + item);
}
public download(event, item) {
event.stopPropagation();
alert('Download ' + item);
}
我想要实现的是,当我点击下载按钮时,它应该做一些其他事情,当点击该项目时,它应该打开一个新的 window
<ion-list>
<ion-item *ngFor="let reading_material of reading_materials" (click)="gotoReadingMaterial(reading_material)">
{{reading_material.title}}
<ion-icon item-right name="download" (click)="downloadMaterial(reading_material)"></ion-icon>
</ion-item>
</ion-list>
但是当我点击下载按钮时,这两个事件都被触发了。 有什么方法可以在我点击下载按钮时抑制项目事件吗??
您可以使用event.stopPropagation();
解决这个问题。
请看this plunker。
如您所见,我还将 $event
对象发送给两种方法
<ion-list>
<ion-item *ngFor="let item of items" (click)="open($event, item)">
{{ item }}
<ion-icon (click)="download($event, item)" item-right name="download"></ion-icon>
</ion-item>
</ion-list>
然后我使用该信息停止事件的传播,因此只有在单击下载图标时才会执行下载方法
public open(event, item) {
event.stopPropagation();
alert('Open ' + item);
}
public download(event, item) {
event.stopPropagation();
alert('Download ' + item);
}