Angular 2 响应式表单 - 使用可忽略字段

Angular 2 Reactive Forms - Using ignorable fields

是否可以将可忽略的字段添加到 Angular 2 的反应形式?

为了简化事情,请看这个表格:

this.form = new FormGroup({
    subTasks: new FormArray([]),
});

每个子任务将由用户解决,解决方案保存在 FormArray 中。

现在为了显示不同子任务的文本,我为每个子任务添加了一个名为“文本”的FormControl。但是当用户提交表单时,我不希望将任务文本与用户输入一起发送到服务器。

我知道我不能使用它,或者在提交之前以编程方式删除它,但我想知道是否有办法将其清理干净。谢谢!

您可以利用的是禁用表单域text,这意味着该域不包含在表单对象中,但您仍然可以使用它。示例:

this.myForm = this.fb.group({
  text: [{value:'text value', disabled: true}],
  somethingElse: ['something else']
});

并在模板中:

<form [formGroup]="myForm">
  <p>{{myForm.get('text').value}}</p>
  <input formControlName="somethingElse">
</form>

如果你想检查整个表单对象,包括禁用的字段,你可以使用:

this.myForm.getRawValue();