繁体   English   中英

AngularJS动态地使用JSON Schema进行表单验证

[英]AngularJS form validation using JSON Schema dynamically

我需要动态验证AngularJS中的json。 我正面临从架构到页面加载字段的问题。 我是AngularJS的新手,所以我对它没有那么多的了解。 我创建了表单,但我无法动态验证它。

    myApp.controller('appController', ['$scope','$http', function($scope, $http) {
        var NUMBER_REGEXP = /^[0-9]+$/;

        $http({ method: 'GET', url: 'JsonSchema.json' })
            .then(function successCallback(response) {
                $scope.data = angular.fromJson(response);
                $scope.data = $scope.data.data;
                console.log($scope.data);
            });

        $scope.greeting = 'success!';

        $scope.handleErrors = function (data) {
            if(data !== undefined && data !== null) {
                angular.forEach(data, function(value, key) {
                    var form = value.form.field;
                    var fields = value.fields.field;
                    var error = form.errors;

                    if(form.compulsory) {
                        $scope.pageError = form.errors.compulsory;
                    }
                    else if(!(NUMBER_REGEXP.test(filds.field))) {
                        $scope.pageError = error.regex;
                    }
                    else {
                        $scope.pageError = "An unexpected error has occurred, please try again later!";
                    }
                });
            }
        }
    }]);

一个plunker通常可以解决这类问题,但最终它取决于您使用哪个库来使用JSON Schema进行验证?

我使用AngularJS Schema Form,因此一旦加载了JSON Schema,您就可以在范围上将其设置为分配给要提供架构的表单的值。 然后,这将为您验证表单或在验证之前等待用户输入。

有许多库可以独立于表单处理数据验证,目前最流行的纯验证是ajv,djv看起来很有前景。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM