#angular #typescript
#angular #typescript
Вопрос:
Я хочу отправлять только определенные входные данные из моей FormGroup. Вот мой код
createForm() {
this.myForm = this.formBuilder.group({
'firstName': [null, Validators.required],
'lastName': [null, Validators.required],
'zipCode': [null, Validators.required],
'CompanyName': [null, Validators.required],
'Phone': [null, Validators.required],
'companyId': [null, Validators.required],`enter code here`
'checkbox1': [true],
'checkbox2': [false]
});
}
У него есть два флажка. Ввод принимается в зависимости от того, установлен флажок или нет. Поэтому, если я сниму флажок checkbox2, мне не нужно отправлять имя компании, телефон, идентификатор компании и т. Д. Как я могу это сделать в angular?
Комментарии:
1. если вы «отключите» FormControl, form.value не будет включать этот элемент. Кстати, в любом случае вы можете создать временный объект перед отправкой, например:
const data={firstName:this.myForm.firstName}
содержать только свойство ‘FirstName’
Ответ №1:
Вам необходимо проверить значения формы при отправке и создать пользовательский объект post.
save(event: Event) {
Object.keys(this.myForm.controls).forEach(field => {
const control = this.myForm.get(field);
control.markAsTouched({ onlySelf: true });
});
if (this.myForm.valid) {
try {
const formValues = this.myForm.value;
console.log(formValues);
//You can check the condition here and pass the values as you need eg:
cost postParams = {
field1:value1,
field2:value2,
}
}catch (e) {
console.log(e);
}
}
}