Angular 4从复选框中获取值

Nin*_*wad 5 checkbox typescript angular-material2 angular

我是棱角分明的新手,我坚持这个非常简单的问题.我从Web服务获取数据以显示几个复选框.我需要一种方法来获取用户选择的所有复选框的值.我正在使用物质主题.

<span *ngFor="let x of maintainanceTypeList">
    <md-checkbox 
       name="{{x.maintenancetype}}" 
       value="{{x.maintenancetype}}"  
       [formControl]="CreateSocietyForm.controls['checkMaintainanceType']">
         {{x.maintenancetype}}
    </md-checkbox>
</span>
Run Code Online (Sandbox Code Playgroud)

Ale*_*iev 10

而不是e.checked你可以使用以下内容:

工作实例

HTML

<input class="form-check-input" type="checkbox" (change)="selectBadge($event, badge._id)">
Run Code Online (Sandbox Code Playgroud)

打字稿

selectBadge (e, id) {

 if (e.target.checked) {
   this.product.badges.push(id);
 }  else {
   this.product.badges.splice(this.product.badges.indexOf(id), 1);
 }

}
Run Code Online (Sandbox Code Playgroud)

  • 我猜您是在指这个问题的其他答案。请修改您的答案以包括该内容。将来可以考虑在其他答案中添加一些小的注释。奖励:我认为您做出了无效的假设。您正在使用`&lt;input&gt;`,而另一个回答正在使用`&lt;md-checkbox&gt;`。两种类型的事件不同 (2认同)

Neh*_*hal 8

您可以向对象添加change事件md-checkbox并将对象传递给函数.保持array跟踪哪些的那些得到checkedunchecked按照该更新数组.

HTML:

<span *ngFor="let x of maintainanceTypeList">
    <md-checkbox 
       name="{{x.maintenancetype}}" 
       value="{{x.maintenancetype}}"
       (change)="change($event, x)">
         {{x.maintenancetype}}
    </md-checkbox>
</span>

<p> Selected value: {{selectedValue | json}} </p>
Run Code Online (Sandbox Code Playgroud)

component.ts:

export class SelectFormExample {
  selectedValue = [];

  maintainanceTypeList = [
    {maintenancetype: 'Steak'},
    {maintenancetype: 'Pizza'},
    {maintenancetype: 'Tacos'}
  ];

  change(e, type){
    console.log(e.checked);
    console.log(type);
    if(e.checked){
      this.selectedValue.push(type);
    }
    else{
     let updateItem = this.selectedValue.find(this.findIndexToUpdate, type.maintenancetype));

     let index = this.selectedValue.indexOf(updateItem);

     this.selectedValue.splice(index, 1);
    }

  }

  findIndexToUpdate(type) { 
        return type.maintenancetype === this;
    }
}
Run Code Online (Sandbox Code Playgroud)

Plunker演示