循环、递归 let obj = { name: this.validateForm.get('name'), note: this.validateForm.get('note'), request: this.validateForm.get('request'), }; validateAllFormFields(formGroup: FormGroup) { Object.keys(formGroup.controls).forEach(field => { const control = formGroup.get(field); if (control instanceof FormArray) { control.markAsDirty(); control.updateValueAndValidity(); let formArr = control.controls; for (let i = 0; i < formArr.length; i++) { this.validateAllFormFields(formArr[i] as FormGroup); } } else if (control instanceof FormControl) { control.markAsDirty(); control.updateValueAndValidity(); if (!control.valid && control.enabled) { this.hasError = true; } } else if (control instanceof FormGroup) { this.validateAllFormFields(control); } }); } validateTheseFields(obj: any) { Object.keys(obj).forEach(field => { const control = obj[field]; if (control instanceof FormArray) { if (control.errors && control.errors.required) { this.hasError = true; control.markAsDirty(); control.updateValueAndValidity(); } let formArr = control.controls; for (let i = 0; i < formArr.length; i++) { this.validateAllFormFields(formArr[i] as FormGroup); } } else if (control instanceof FormControl) { control.markAsDirty(); control.updateValueAndValidity(); if (!control.valid) { this.hasError = true; } } }); }
循环、递归