2016-12-08 12 views
4

AngularJSでjsonを動的に検証する必要があります。 スキーマのフィールドをページに読み込む際に問題が発生しました。 私は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!"; 
        } 
       }); 
      } 
     } 
    }]); 

答えて

0

plunker通常、この種の問題に役立ちますが、最終的にそれはあなたが検証を行うためにJSONスキーマを使用するための使用しているライブラリに依存?

私はAngularJS Schema Formを使用していますので、JSONスキーマがロードされたら、スキーマを提供するフォームに割り当てられた値のスコープに設定してください。これにより、フォームが検証されるか、検証前にユーザーの入力を待機します。

フォームから独立したデータの検証を処理できるライブラリが数多くあります。純粋な検証で最も一般的なものはajvですが、現在djvも有望です。

関連する問題