Angular 5 个表单组列表控件或迭代它们
Angular 5 formgroup list controls or iterate them
我正在使用 angular 5 和 formgorup 并希望迭代控件,以便创建基于表单的动态组件,表单字段由外部数据服务(数据库等)提供
声明如下
check = new FormGroup({
firstName : new FormControl(true),
lastName : new FormControl(false)
});
我发现 解释了如何迭代控件,但它不起作用。我尝试使用:
for(let item of this.check.controls){}
得到这是 chrome 调试:
Cannot read property 'length' of undefined
我无法访问 this.check.controls.keys 或 keys()
如何迭代键?
谢谢
此表单返回值对象而不是值数组
check = new FormGroup({
firstName : new FormControl(true),
lastName : new FormControl(false)
});
如果你想得到键,那么你必须使用 Object.keys() 方法 returns 给定对象的 属性 名称的数组,顺序与我们得到的相同正常循环
KeyArray= Object.keys(this.check.controls)// ["firstName", "lastName"]
尝试使用Object.keys
方法获取对象键
Object.keys(this.check.controls); // => ["firstName", "lastName"]
this.check.controls
是对象 key/value 配对结构 如果你想得到对象的键 {key1:value,key2:value}
你可以使用 Object.keys 方法 return 一个数组包含键 ['key1','key2']
遍历一个对象:
for(let item in this.check.controls){
console.log(this.check.controls[item])
}
这个功能很适合我
public static ResetForm(form: FormGroup, config = {}) {
const controls: string[] = Object.keys(form.controls);
controls.forEach(key => {
if (config[key] && config[key]["default"])
form.get(key).setValue(config[key]["default"]);
else form.get(key).setValue("");
form.get(key).setErrors(null);
form.get(key).markAsTouched();
});
}
如果您想设置空字符串以外的默认值,请使用如下配置对象
ResetForm(this.form, {
categories: {
default: []
}
});
我正在使用 angular 5 和 formgorup 并希望迭代控件,以便创建基于表单的动态组件,表单字段由外部数据服务(数据库等)提供
声明如下
check = new FormGroup({
firstName : new FormControl(true),
lastName : new FormControl(false)
});
我发现
for(let item of this.check.controls){}
得到这是 chrome 调试:
Cannot read property 'length' of undefined
我无法访问 this.check.controls.keys 或 keys()
如何迭代键?
谢谢
此表单返回值对象而不是值数组
check = new FormGroup({
firstName : new FormControl(true),
lastName : new FormControl(false)
});
如果你想得到键,那么你必须使用 Object.keys() 方法 returns 给定对象的 属性 名称的数组,顺序与我们得到的相同正常循环
KeyArray= Object.keys(this.check.controls)// ["firstName", "lastName"]
尝试使用Object.keys
方法获取对象键
Object.keys(this.check.controls); // => ["firstName", "lastName"]
this.check.controls
是对象 key/value 配对结构 如果你想得到对象的键 {key1:value,key2:value}
你可以使用 Object.keys 方法 return 一个数组包含键 ['key1','key2']
遍历一个对象:
for(let item in this.check.controls){
console.log(this.check.controls[item])
}
这个功能很适合我
public static ResetForm(form: FormGroup, config = {}) {
const controls: string[] = Object.keys(form.controls);
controls.forEach(key => {
if (config[key] && config[key]["default"])
form.get(key).setValue(config[key]["default"]);
else form.get(key).setValue("");
form.get(key).setErrors(null);
form.get(key).markAsTouched();
});
}
如果您想设置空字符串以外的默认值,请使用如下配置对象
ResetForm(this.form, {
categories: {
default: []
}
});