Это: data: this.formBuilder.group({ x: 0, y: 1}),
определяет другую группу FormGroup. Что значит «установить его на ноль»? Вы хотите установить x
и y
на ноль? Удалить FormGroup? Я не уверен, что означает "установить в ноль" в контексте создаваемой вами группы форм.
Если вы хотите установить значение FormControls в FormGroup на нулевые значения, тогда это работает:
changeToNull2() {
console.log(this.dataForm2);
console.log(this.dataForm2.get('testGroup').value);
this.dataForm2.get('testGroup.data').patchValue({
x: null,
y: null
});
}
Если вы хотите удалить группу FormGroup, определенную data
, вы можете использовать removeControl()
следующим образом:
(<FormGroup>this.dataForm2.get('testGroup')).removeControl('data');
Обновлен стек, который отображает оба: https://stackblitz.com/edit/angular-7-reactive-form-validation-aeshez
UPDATE
Просто чтобы уточнить, в этом коде:
this.dataForm = this.formBuilder.group({
prop1: true,
testGroup: this.formBuilder.group({
data: null,
check: { a: "a", b: "b"}
})
});
data
- это FormControl, значение которого по умолчанию равно нулю.
В этом коде:
this.dataForm = this.formBuilder.group({
prop1: true,
testGroup: this.formBuilder.group({
data: this.formBuilder.group({ x: 0, y: 1}),
check: { a: "a", b: "b"}
})
});
data
- это FormGroup с двумя FormControls: x
со значением по умолчанию 0 и y
со значением по умолчанию 1.