验证角度形式定义

时间:2016-06-28 08:58:17

标签: angularjs json validation angular-formly

我在一个应用程序中工作,用户可以提供保存在数据库中的JSON格式表单定义。最终,该定义将用于生成表单。

我需要先验证JSON定义,然后再将其保存到数据库中,就像下面的API检查一样。

角度形式是否有可能做到这一点,还是我应该创建自己的验证器?

感谢。

1 个答案:

答案 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中声明它