javascript - 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;
}
问题是我的 return false 打破了 for 循环,但之后不断迭代,所以我总是返回 true。我想要做的是,如果一个表单控件不为空,我想返回 false 并打破 for 循环和迭代函数。谢谢你。
解决方案
我认为,最好使用required验证器而不是迭代您的控件。
const control = new FormControl('', Validators.required);
console.log(control.value); // ''
console.log(control.status); // 'INVALID'
推荐阅读
- php - 从数据库 PHP 将 html 渲染到页面
- hive - 在配置单元视图上检测到递归视图
- javascript - Admin SDK 无法为 Firestore 设置设置
- vue.js - Vuetify v-text-field 更改值
- java - Javafx - 将项目添加到与另一个类文件夹不同的类文件夹中的可观察列表的正确方法是什么
- r - 机器学习:R 中逻辑回归的随机梯度下降:计算 Eout 和平均时期数
- php - Vich上传包没有在上传文件夹中保存大图像
- python - 从包含不同键/值的另一个对象中选择 JSON 键
- php - Laravel 5.5:获取服务提供者中的所有注册路由
- css - 根据里面的内容调整绝对定位元素的宽度