0
データベースから返されるオブジェクトは、IDの名前のリストであり、それらが選択されているかどうかです。Angular2 - ngForおよび反応形式のボックスをチェックする
オブジェクト:
let data = [{
AttributeID: 1,
AttributeName: 'Something',
IsSelected: 'True'
},
{
AttributeID: 2,
AttributeName: 'Something Else',
IsSelected: 'False'
}]
HTML:
<div *ngFor="let data of modalData.variableData">
<input type="checkbox" (change)="onAttributeCheckboxChange(data.AttributeID, $event.target.checked)" [checked]="(data.IsSelected == 'True' ? 1 : 0)"> {{data.AttributeName}}<br>
</div>
コンポーネント:
private settingsForm: FormGroup;
ngOnInit() {
this.settingsForm = this.fb.group({
attribute: this.fb.array([])
});
}
onAttributeCheckboxChange(attribute: number, isChecked: boolean) {
const attributeFormArray = <FormArray>this.settingsForm.controls.attribute;
if (isChecked) {
attributeFormArray.push(new FormControl(attribute));
} else {
let index = attributeFormArray.controls.findIndex(x => x.value == attribute)
attributeFormArray.removeAt(index);
}
}
は、私が間違ってここで何かをやっているbecaus特定のボックスは私のUIにchecked
と表示されていますが、フォームを送信すると、配列は空に戻ってきます。
onSave() {
console.log(this.settingsForm.value)
}
どのように私はform
が最初[checked]
経由だけ要素自体を確認していないされているチェックボックスの知っていることを確認することができますか?
plunkr作業が参考になる持っていますあなたがsettingsFormのようないくつかのコードを表示することができ、どのように提出を行うのですか? – BogdanC
@BogdanCそれほど多かったので、私はそれをやめました。ここに2つの部分を追加しました。 – SBB