2016-01-29 1 views
1

Я использую jsonschema для генерации наших форм и проверки их.Загрузка опций выбора блока на основе другого поля выбора с помощью jsonSchema

Ниже приведен пример JSON:

{ 
    "title": "Microsoft Account Request", 
    "readOnly": false, 
    "$schema": "http://json-schema.org/draft-04/hyper-schema", 
    "description": "Microsoft Azure Account Request Product Specification", 
    "properties": { 
    "product": { 
     "title": "Product", 
     "dataBinding": {"references": ["SPEC_ID#/properties/service"]}, 
     "properties": { 
     "offers": { 
      "title": "Product Offers", 
      "propertyOrder": 1, 
      "type": "array", 
      "uniqueItems": true, 
      "format": "tabs", 
      "items": { 
      "title":"Product Offer", 
      "properties": { 
       "category": { 
       "title": "Category", 
       "readOnly": false, 
       "unique":true, 
       "strictProperties": true, 
       "enum": [ 
        "Cloud Services", 
        "Virtual Machines", 
        "Azure App Service", 
        "Batch" 


       ], 
       "options": { 
        "dependencies": [ 
         {"id":"subcategoryAdd", "value":true} 
        ] 
        }, 
       "description": "Select category", 
       "propertyOrder": 1, 
       "type": "string" 
       }, 
       "subcategory": { 
        "id":"subcategoryAdd", 
       "title": "Sub - Category", 
       "readOnly": false, 
       "strictProperties": true, 
       "description": "Select Sub-Category", 
       "options": { 
        "hide_display": true 
        }, 
       "enum": [ 
        "Build and Deployment", 
        "Application Insights" 
       ], 
       "propertyOrder": 2, 
       "type": "string" 
       } 
      }, 
      "type": "object" 
      } 
     } 

     }, 
     "type": "object" 
    } 
    }, 
    "type": "object" 
} 

И пример вывод:

enter image description here

В выходной форме, я выделил вариант подкатегории в его выбрать окно должно быть загружено на основе выбранной категории.

Например, если выбрать batch затем подкатегорию параметров а, b, c должен быть показан в окне выбора для подкатегории и если выбрать Azure app service затем подкатегорию варианты D, E, F должны быть показаны в окне выбора для подкатегории.

Я пытался с dependencies, но зря. Кроме того, я попытался выполнить это, используя watch и enumSource, как упомянуто here

Любые помощь будет стоить.

Спасибо!

ответ

1

Ваша категория/подкатегория может быть подтверждена с использованием следующей схемы JSON.

{ 
    "type": "object", 
    "anyOf": [ 
    { 
     "properties": { 
     "category": { "enum": ["foo"] }, 
     "subCategory": { "enum": ["asdf", "jkl;"] } 
     } 
    }, 
    { 
     "properties": { 
     "category": { "enum": ["bar"] }, 
     "subCategory": { "enum": ["asdf", "qwer", "uiop"] } 
     } 
    } 
    ] 
} 

Однако это не означает, что генератор формы, который вы используете, сможет создать форму на основе этого. Я был бы впечатлен, если бы мог.

Смежные вопросы