【发布时间】:2018-08-16 07:34:48
【问题描述】:
我有一个由多个表单组组成的 formArray。我需要根据数组中每个表单组中存在的布尔字段对数组进行动态排序。
布尔字段是一个复选框,在任何给定时间点都只能选中一个复选框(模仿单选按钮)。因此,当单击复选框时,我需要根据所选的对 formArray 进行排序。
我知道文档建议不要弄乱 formArray 中的 AbstractControls[],那么动态排序数组的理想方法是什么?
我尝试对数组进行切片并将控件设置回 formArray,但我不断收到错误消息“必须为表单控件提供一个值,名称为:'primaryIndicator'。”
const abstractControls = this.formArray.controls
.slice()
.sort((a, b) => {
return (a as FormGroup).get('primaryIndicator').value ? -1 : (b as FormGroup).get('primaryIndicator').value ? 1 : 0;
});
this.formArray.setValue(abstractControls);
如果这不是正确的方法,解决这种情况的最佳方法是什么?
【问题讨论】:
标签: angular angular2-forms angular-forms angular4-forms