Lint错误消息:
src/app/detail/edit/edit.component.ts [111,5]:for(... in ...)语句必须用if语句过滤
代码片段(这是一个工作代码.它也可以在angular.io表单验证部分获得):
for (const field in this.formErrors) {
// clear previous error message (if any)
this.formErrors[field] = '';
const control = form.get(field);
if (control && control.dirty && !control.valid) {
const messages = this.validationMessages[field];
for (const key in control.errors) {
this.formErrors[field] += messages[key] + ' ';
}
}
}
Run Code Online (Sandbox Code Playgroud)
知道如何修复这个lint错误吗?
在我的Angular 4应用程序中,我有一个包含多个控件的表单.
在某些方面,我需要强制更新其有效性,所以我正在做:
this.form.get('control1').updateValueAndValidity();
this.form.get('control2').updateValueAndValidity();
this.form.get('control3').updateValueAndValidity();
// and so on....
Run Code Online (Sandbox Code Playgroud)
然后:
this.form.updateValueAndValidity();
Run Code Online (Sandbox Code Playgroud)
这很好用.
然而,我想知道是否有更好的方法来完成相同的事情,只需在父窗体上调用一个方法.
根据其文档,updateValueAndValidity()方法:
默认情况下,它还会更新其祖先的值和有效性.
但在我的情况下,我需要更新其后代的价值和有效性.所以我可以摆脱许多代码行.
typescript angular-validation angular angular-reactive-forms angular-forms
我有一个FormArray,需要遍历每个成员.
我搜索过,发现很多帖子似乎应该有答案,但我仍然没有找到我需要的东西.
我看到文档中有一个get方法,但我看不到在哪里获得密钥,甚至长度.
如何迭代FormArray?
我在formgorup中使用angular 5,并希望对控件进行迭代,以便基于表单创建动态组件,表单字段由外部数据服务(数据库等)提供
声明如下
check = new FormGroup({
firstName : new FormControl(true),
lastName : new FormControl(false)
});
Run Code Online (Sandbox Code Playgroud)
我发现这说明了如何迭代控件,但是它不起作用。我尝试使用:
for(let item of this.check.controls){}
Run Code Online (Sandbox Code Playgroud)
并得到这是chrome调试:
无法读取未定义的属性“长度”
我无法访问this.check.controls.keys或keys()
我该如何迭代密钥?
谢谢