【发布时间】:2018-09-06 09:06:30
【问题描述】:
我遇到了中断迭代循环并在满足条件时返回 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;
}
问题是我的 return false 打破了 for 循环,但之后不断迭代,所以我总是返回 true。我想要做的是,如果一个表单控件不为空,我想返回 false 并打破 for 循环和迭代函数。谢谢。
【问题讨论】:
-
我看不出您的
return false怎么可能无法突破整个功能。问题可能是this.isEmpty2(control);应该替换为if (!this.isEmpty2(control)) return false;吗?您是否尝试过使用调试器单步执行代码或添加console.log语句来跟踪正在发生的事情?
标签: javascript typescript loops iteration angular-reactive-forms