我正在使用Angular 7和Dynamic Forms
我存储了一些表单配置,如输入:“text”等来构建我的表单 . 它们存储在数据库中 . 我将验证存储为验证器:“Validators.required” . 现在,当我想构建动态表单并使用以下命令将验证分配给表单控件时:
validations.forEach(valid => {
validList.push(valid.validator);
});
return Validators.compose(validList);
我收到以下错误:Screenshot
现在我假设这是因为我将Validators.required存储为一个字符串,导致它失败,因为它实际上不是我从angular / forms导入的Validator类型 .
我的问题:如何将存储的字符串转换为Validators类型 . 我尝试过使用 castValidator = (valid.validator as Validators);
给了我同样的错误 .
我想过只做一个switch语句来检查字符串然后将相关的Validators推送到数组中,但这似乎是一个糟糕的解决方案 . 我必须考虑每个Validator类型,甚至不考虑自定义验证 .
1 回答
如果数据以字符串的形式保存,则数据采用键值对的形式 . 然后,您将不得不使用JSON.parse()解析从数据库中获得的内容 .