【发布时间】:2020-11-03 12:01:39
【问题描述】:
我有一个 Angular (10) Material 复选框,标签中有一个链接,该链接有一个点击处理程序来打开一个包含参考信息的对话框:
<mat-checkbox formControlName="certification">
By checking this box, I certify that all shipment information provided is correct and I agree to adhere to the
<span class="fake-link" (click)="openUspsPrivacyAgreement($event)"> USPS Privacy Act Statement </span> and all
other country-specific requirements.
</mat-checkbox>
我的点击处理程序是
openUspsPrivacyAgreement(event: MouseEvent) {
this.dialogService.open(DialogUspsPrivacyAgreementComponent);
event.preventDefault();
event.stopPropagation();
}
它的工作原理是对话框打开并且未选中复选框,这是我想要的。
但是,无论如何都会在复选框上触发涟漪。有没有办法在我点击我的文本时防止涟漪,但在点击复选框时它可以工作?
我认为我所做的已经足够了,因为它确实阻止了点击进入复选框并选中它。
【问题讨论】:
-
在打开对话框之前您是否尝试过只做
event.preventDefault();和event.stopPropagation();? -
为 mat-checkbox 设置 [disableRipple]="true" 可能是最简单的。你会失去正常检查的涟漪,但似乎要付出很小的代价才能避免更复杂的事情。
标签: javascript angular angular-material