angular - ionic2 ionic 列表,带有一个按钮,都具有(单击)事件

标签 angular typescript ionic-framework ionic2 ionic3

我想要实现的是,当我点击下载按钮时,它应该做一些其他事情,当点击该项目时,它应该打开一个新窗口

<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);
  }

关于angular - ionic2 ionic 列表,带有一个按钮,都具有(单击)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39847181/

相关文章:

angular - 在 Angular 的 HttpInterceptor 中进行实际的 http 调用之前,调用另一个 http api(不进行拦截)

angular - Angular 中的项目定义是什么?

Angular 9 未处理的 promise 拒绝 : Angular JIT compilation failed error

javascript - Sequelize 4 : Use native ES6 promise instead of Bluebird promise

javascript - 使用 css 渐变和 javascript 创建动画

angular - 如何从 visual studio 2015 update 3 的构建中排除 node_module 文件夹

TypeScript:自定义 Express 路由器上的自定义请求类型 (TS2769)

javascript - JSX TypeScript 定义覆盖自定义框架的组件?

reactjs - 电容器插件在 Android 版本上显示为未定义

javascript - 带有页眉页脚 Angular ionic 的列表卡