繁体   English   中英

Angular 点击事件在另一个点击事件中

[英]Angular click event inside another click event

我的页面中有以下设置

点击内的角度点击

当我单击一个部门的主框时,它会被选中,然后部门和团队会在右侧的选项卡中更新。 但是,我还想单击编辑图标来编辑部门的名称。

因为编辑点击事件在 select 分割点击事件中,所以当我点击编辑时,这两个事件都会被触发。

解决方案是什么? 如何单击编辑按钮并仅触发该事件而不触发 select 除法事件? 我必须将它移到 html 之外然后相对 position 吗? 有没有更好的办法?

<div class="divisionList">
   <div *ngFor="let division of filteredDivisions" (click)="selectDivision(division)"
       <form [formGroup]="formDivision" fxLayout="row" class="divisionForm">
           <h4 *ngIf="!isDivisionNameBeingEdited(division)">{{division.name}}</h4>
              <input matInput #editTitle (change)="submit()"
                  *ngIf="isDivisionNameBeingEdited(division)" class="mrmd titleInput"
                    id="title2" formControlName="division" />
            <div fxFlex></div>
            <mat-icon (click)="editDivisionName(division)">edit</mat-icon>
        </form>
    </div>
</div>
                                   

这是在 JavaScript 中处理点击事件的方式。 它们“冒泡”或通过父元素向上传播。 您需要处理该事件并明确告诉它不要向上传播元素链。

<div class="divisionList">
   <div *ngFor="let division of filteredDivisions" (click)="selectDivision(division)"
       <form [formGroup]="formDivision" fxLayout="row" class="divisionForm">
           <h4 *ngIf="!isDivisionNameBeingEdited(division)">{{division.name}}</h4>
              <input matInput #editTitle (change)="submit()"
                  *ngIf="isDivisionNameBeingEdited(division)" class="mrmd titleInput"
                    id="title2" formControlName="division" />
            <div fxFlex></div>
            <mat-icon (click)="editDivisionName($event, division)">edit</mat-icon>
        </form>
    </div>
</div>

.ts文件中

editDivisionName($event: MouseEvent, division) {
    $event.stopPropogation();
}

StackBlitz 演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM