簡體   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