我在一个应用程序中工作,用户可以提供保存在数据库中的JSON格式表单定义。最终,该定义将用于生成表单。
我需要先验证JSON定义,然后再将其保存到数据库中,就像下面的API检查一样。
角度形式是否有可能做到这一点,还是我应该创建自己的验证器?
感谢。
答案 0 :(得分:0)
是的,您可以在http://angular-formly.com/#/example/advanced/validators看到它
使用JSON的示例:
{
"key": "test",
"className": "flex-gt-xs-100 flex",
"type": "input",
"templateOptions": {
"required": true
},
"validation": {
"messages": {
"required": "function(viewValue, modelValue, scope) {return scope.to.label + ' is required';}"
}
}
}
但是JSON不了解功能。所以,你需要编写代码才能做到这一点
$http.get('test.json').success(function(array)
{
var jsonTransformed = JSON.parse(JSON.stringify(array), function (key, value) {
if (value && (typeof value === 'string') && value.indexOf("function") === 0) {
var jsFunc;
eval("jsFunc = " + value);
return jsFunc;
}
return value;
});
vm.fields = jsonTransformed;
});
您应该在控制器中编写验证函数并在formly-field中声明它