使用JSON模式动态进行AngularJS表单验证

4

我需要在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!";
                    }
                });
            }
        }
    }]);
1个回答

0

通常情况下,Plunker可以帮助解决这种问题,但最终取决于您使用哪个库来处理JSON Schema以进行验证?

我使用AngularJS Schema Form,因此一旦加载了JSON Schema,您可以将其设置在作用域上,以提供模式分配给表单的值。然后,它将为您验证表单或等待用户输入进行验证。

有数十个库可以独立于表单处理数据验证,目前最受欢迎的纯验证库是ajv,不过djv看起来也很有前途。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接