在 Angular 中获取复选框名称、值和选中状态

Jak*_*ake 3 angular

我有以下 4 个动态生成的复选框。在角度组件中,我想检索复选框的“名称”、“值”和“状态”。

HTML:

<input type="checkbox" 
       name="automotive" 
       value="car" 
       ngModel 
       (ngModelChange)="filterResults(obj, $event)">

<input type="checkbox" 
       name="automotive" 
       value="truck" 
       ngModel 
       (ngModelChange)="filterResults(obj, $event)">

<input type="checkbox" 
       name="apparel" 
       value="shirts" 
       ngModel 
       (ngModelChange)="filterResults(obj, $event)">

<input type="checkbox" 
       name="apparel" 
       value="pants" 
       ngModel 
       (ngModelChange)="filterResults(obj, $event)">
Run Code Online (Sandbox Code Playgroud)

成分:

filterResults(obj: any, isChecked: boolean){
  console.log(obj);
  console.log(isChecked); // {}, true || false
} 
Run Code Online (Sandbox Code Playgroud)

我能够获取复选框的状态,但无法获取名称和值。打印到控制台后,obj未定义。我想根据复选框的名称和值将过滤器应用于数据集。

如何获取选中复选框的名称和值,以便我可以做到这一点?

Sak*_*ham 7

您可以将ngModelChange事件替换为clickevent对象传递为的事件

(change)="GetStats($event)"
Run Code Online (Sandbox Code Playgroud)

并在组件方法中,尝试获取名称、值和检查状态

GetStats(event: Event) {
    console.log(event.target.name, event.target.value, event.target.checked);
}
Run Code Online (Sandbox Code Playgroud)

在 stackblitz 中查看更多信息https://stackblitz.com/edit/angular-get-dynamic-checkbox-attributes