如果框本身被选中,有没有办法选中 mat-checkbox?

Is there a way to have the mat-checkbox checked if the box itself is checked?

我的复选框中有一个 link,当我单击 link 时,它也会选中该框。有没有办法禁用它?我不想删除复选框外的文本,所以如果有办法做到这一点那就太好了。

<mat-checkbox>
Checkout this <a (click)="getLink('linkurl')">Link</a>.
</mat-checkbox>

您可以将 event.preventDefault() 添加到您的点击事件中:

(点击)="getLink('linkurl');event.preventDefault()"

首先想将其标记为不可取。 Anchors should not be placed inside of labels,点击标签切换复选框输入的功能是设计使然,可帮助使用触摸屏设备等的用户。

话虽如此,您可以将 $event 参数传递给您的事件处理程序并调用 .preventDefault() 以停止默认操作。

(click)="getLink('linkurl', $event)

在你的组件中 class

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  getLink(linkurl: string, event: MouseEvent) {
    event.preventDefault(); // stops the checkbox from being selected.
    ...
  }
}