TS / JS打破了内部带有for循环的迭代函数



我遇到了一个问题,即中断迭代循环并在满足条件时返回 false。

我实际上要做的是检查反应式表单是否为空:

public isEmpty(form: AbstractControl): boolean {
if (form instanceof FormGroup) {
for (const key of Object.keys(form.controls)) {
if (key !== 'modalite') {
const control = form.get(key);
if (control instanceof FormGroup) {
this.isEmpty2(control);
} else {
if (control.value && control.value !== '') {
return false;
}
}
}
}
} else {
if (form.value && form.value !== '') {
return false;
}
}
return true;
}

问题是我的返回 false 正在破坏 for 循环,但之后不断迭代,所以我总是返回 true。我想做的是,如果一个 formcontrol 不为空,我想返回 false 并中断 for 循环和迭代功能。谢谢。

我认为,最好使用必需的验证器而不是迭代您的控件。

const control = new FormControl('', Validators.required);
console.log(control.value);      // ''
console.log(control.status);     // 'INVALID'

请参阅:https://angular.io/api/forms/FormControl

最新更新