如何检查我的复选框列表是否已选中或未选中AngularJS 2

时间:2017-03-24 09:38:54

标签: javascript angular typescript checkbox

我有一个复选框列表。

<ion-list *ngFor="let type of documentType">
  <ion-item >
   <ion-label>{{type.documentTypeName}}</ion-label>
       <ion-checkbox [(ngModel)]="type.checked"            (click)="checkBoxChecked(type.documentTypeName)" disabled="false" ></ion-checkbox>
  </ion-item>
</ion-list>

我在模板的复选框列表中显示此数组:

  checkBoxChecked(documentTypeinput)
  {
    if (documentTypeinput =="A")
    {
      console.log("this A");
    }
    else if (documentTypeinput=="B"){
      console.log("B")
    }
    else if (documentTypeinput=="C"){
      console.log("C")
    }
  }

回到我创建checkBoxChecked方法的组件:

{{1}}

但这不是合适的方式。我无法知道检查或取消选中的元素。 你能帮助我找出使用多个复选框的最佳实践吗?因为我想用服务设置数组。我想要我的代码 可重复使用的。所以我只会改变网络API。 提前谢谢你

2 个答案:

答案 0 :(得分:2)

由于您使用[(ngModel)]="type.checked"将复选框绑定到对象,因此您已拥有所需的所有数据。您只需要在阵列上循环以检查选中的复选框。

checkBoxChecked()
{
    this.documentType.forEach(e => {
        if(e.checked){
            console.log(e.type+' is checked !")
        }
    });
}

答案 1 :(得分:1)

<li *ngFor="let col of data" class="form-group">
   <input type="checkbox" name="col" value=" {{col.value}}" [(ngModel)]="col.value" (change)="addColumns(col)" />{{col.name}}
</li>

 data:any[]=[{"id":"13","name":"AAA"},{"id":"15","name":"BBB"}, {"id":"20","name":"CCC"}]
 constructor() {}
 get selectedcheckboxes() {
     return this.data
       .filter(opt => opt.value)  
 }

addColumns(col){
  this.selectedcheckboxes;
  console.log(this.selectedcheckboxes)
}


 See The demo below using the property binding-ngModel  :

DEMO