我是棱角分明的新手,我坚持这个非常简单的问题。我从Web服务获取数据以显示几个复选框。我需要一种方法来获取用户选择的所有复选框的值。我正在使用物质主题。
<span *ngFor="let x of maintainanceTypeList">
<md-checkbox
name="{{x.maintenancetype}}"
value="{{x.maintenancetype}}"
[formControl]="CreateSocietyForm.controls['checkMaintainanceType']">
{{x.maintenancetype}}
</md-checkbox>
</span>
答案 0 :(得分:10)
您可以使用以下内容代替e.checked
:
工作示例
<强> HTML 强>
<input class="form-check-input" type="checkbox" (change)="selectBadge($event, badge._id)">
<强>打字稿强>
selectBadge (e, id) {
if (e.target.checked) {
this.product.badges.push(id);
} else {
this.product.badges.splice(this.product.badges.indexOf(id), 1);
}
}
答案 1 :(得分:8)
您可以向change
添加md-checkbox
事件,并将该对象传递给函数。保持array
跟踪哪些checked
和unchecked
并根据该数据更新数组。
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>
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;
}
}