获取角度材质中单击事件的选中状态

Apo*_*orv 21 angular-material angular

我有一个角元素

<mat-checkbox class="btn-block" 
              labelPosition="before" 
              (change)="showOptions($event)" 
              (click)="makeJSON($event.checked,i,j,k)">
</mat-checkbox>
Run Code Online (Sandbox Code Playgroud)

这里onchange(实际上给出了checkout的状态)正在做一些其他的任务,我想要点击事件的复选框状态(选中或取消选中).

我已经尝试查看由click创建的对象,并且里面没有click对象,所以我如何检测是否选中了复选框.

Gün*_*uer 39

您可以使用

(change)="showOptions($event)" 
(change)="makeJSON($event.checked,i,j,k)">
Run Code Online (Sandbox Code Playgroud)

要么

(change)="showOptions($event);makeJSON($event.checked,i,j,k)">
Run Code Online (Sandbox Code Playgroud)


Jnr*_*Jnr 22

有了你,(change)="showOptions($event)"你可以简单地获得这样的状态:

showOptions(event:MatCheckboxChange): void {
    console.log(event.checked);
}
Run Code Online (Sandbox Code Playgroud)


sha*_*ain 12

另一种解决方案可以是,您可以使用带有复选框的模板引用变量并将该变量传递给方法参数。

 <mat-checkbox #checkbox (change)='showOptions(checkbox.checked)' value=''>all</mat-checkbox> 
Run Code Online (Sandbox Code Playgroud)

这里#checkbox引用包含所有与复选框相关的属性(如值、已选中等)。 checkbox.checked这将给出带有 true 和 false 的复选框的当前状态。


VIK*_*HLI 5

是的,您可以使用更改函数 (change)="showOptions($event); 获取选中的事件;

在 Ts

showOptions(event){
 console.log(event.checked); //true or false
}
Run Code Online (Sandbox Code Playgroud)

当 Checkbox 为 false 时未选中在此处输入图片说明

当 Checkbox 为 true 时,它​​被选中 在此处输入图片说明