我正在Angular2 / Ionic2中生成一个表单,我已经关注了Angular站点上的dynamic form tutorial。但是,根据我的需要,我需要更多验证而不是仅仅需要验证。因此这段代码。
doGenerateKidsBasicFormWithNameAndAge(params: any){
let kidsData:any = {};
params.forEach(question => {
kidsData[question.id] = this.doDecideValidation(question)
});
return new FormGroup(kidsData);
}
这是确定将应用何种验证类型的函数。
doDecideValidation(question){
if(question.type === "text"){
new FormControl(question || '', Validators.compose([Validators.required, Validators.minLength(question.minLength), Validators.maxLength(question.maxLength), Validators.pattern('[a-zA-Z ]*')]));
}else if(question.type === "number"){
new FormControl(question || '', Validators.compose([Validators.required]));
}else {
new FormControl(question || '');
}
};
当我这样做时,我收到错误。
TypeError: Cannot read property 'setParent' of undefined
有什么想法吗?
答案 0 :(得分:1)
继续我的评论,在对Typescript Types做一些阅读之后,看一下你给出的表格示例,我可能已经找出了问题所在。
您对.forEach()
进行了params: any
操作,这是一个可能是也可能不是数组的变量。尝试单击[]
,如此:params: any[]
,看看是否有帮助。
答案 1 :(得分:0)
也许你只需要指定rith this
(forEach函数中的第二个参数)?