Angular 基于eval的角焊缝动态形状验证
我在Angular 7中有一个动态表单,字段、控件类型、可见性、验证,所有内容都来自数据库。我知道,对于动态表单,如果来自数据库的验证是在角度验证中构建的,那么就容易多了,但我想做的是为每个控件类型的验证数组构建一个自定义验证,并使用eval,将其评估为真/假,并基于此显示相应的错误消息Angular 基于eval的角焊缝动态形状验证,angular,angular-forms,Angular,Angular Forms,我在Angular 7中有一个动态表单,字段、控件类型、可见性、验证,所有内容都来自数据库。我知道,对于动态表单,如果来自数据库的验证是在角度验证中构建的,那么就容易多了,但我想做的是为每个控件类型的验证数组构建一个自定义验证,并使用eval,将其评估为真/假,并基于此显示相应的错误消息 这在我的用例中不起作用,因为它们使用内置的角度验证。Remyaj,链接显示验证程序来自类似 validations: [{ name: "required", validator: Validators
这在我的用例中不起作用,因为它们使用内置的角度验证。Remyaj,链接显示验证程序来自类似
validations: [{
name: "required",
validator: Validators.required,
message: "Name Required"
}]
如果这来自dbs,你的对象可以是
validations: [{
name: "required",
message: "Name Required"
},
{
name:"custom",
message: "Name Custom error"
}]
你唯一需要做的就是在收到数据后制作一张地图,比如
getShema().pipe(map((res:any)=>{
res.forEach((field:any)=>{
if (field.validations)
{
field.validations.forEach(validator=>{
switch (validator.name)
{
case "required":
validator.validator=Validator.required
break;
case "custom":
validator.validator=myCustomValidator
break;
...
}
}
}
}
return res
})
您不能简单地创建自定义验证器并使用它们吗?