为了账号安全,请及时绑定邮箱和手机立即绑定

检查传递的元素是否被类 Angular 8 封装

检查传递的元素是否被类 Angular 8 封装

郎朗坤 2022-06-16 14:50:49
我似乎找不到我的问题的答案或正确的角度方式来做到这一点。我理解这部分是主观的。我有一个可点击的元素。在该元素内,我还有另一个可点击的元素:    <li (click)="route($event, d, d.isdliked)" *ngFor="let d of dList; let i = index">        <div class="image-container" [ngStyle]="{ 'background-image': 'url(' + d.ImagePath + ')'}">            <div class="keep-container">                <div *ngIf="d.dliked" (click)="cantKeep()" class="liked">                    <p>{{d.dLikes}}</p>                </div>                <div *ngIf="!d.dliked" (click)="keep(d, i)" class="not-liked">                    <p>{{d.dLikes}}</p>                </div>            </div>        </div>    </li>所以 li 元素中的第一次点击事件会将用户路由到另一个页面。另一个单击事件不会路由到任何地方。但是,如果我点击这两个内部点击事件,当我不想这样做时,我会被路由到我的另一个页面。所以我尝试了这段代码来检查被点击的元素是否包含类“keep-container”:  route(element: Element, d: D, dIsLiked: boolean): void {    if (!element.classList.contains("keep-container")) {      this.router.navigate(['/dinfo']);    }  }但这不起作用。我当然尝试过element.target,但没有奏效。我究竟做错了什么?我会继续寻找。主要目标:如果我点击 p 标签 <p>{{d.dLikes}}</p>,我想检查它是否在类内"keep-container"
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

就像$event.stopPropagation()通常在 javascript 中一样使用


<div *ngIf="d.dliked" (click)="$event.stopPropagation();cantKeep()">...</div>

好吧,我喜欢在同一个 .html 中,您可以将 $event 传递给函数 cantKeep 并在 .ts 中进行 stopPropagation


<div *ngIf="d.dliked" (click)="cantKeep($event)">...</div>


cantKeep(event)

{

  event.stopPropagation();

  ...rest of actions..

}


查看完整回答
反对 回复 2022-06-16
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号