Запрос угловой схемы для типа массива - PullRequest
1 голос
/ 17 апреля 2019

При настройке схемы я вижу, что могу запросить любой из следующих типов String |Логический |Массив |Номер |Целое число |Null |Object.

Я пытаюсь настроить схему, которая предлагает пользователю выбрать модуль из списка доступных модулей.Так, например, пользователь увидит что-то вроде этого:

What module are you adding this store to?
 > Foo
   Bar
   Baz

Хотя существует множество примеров как строковых, так и логических приглашений, никто не предоставил пример, который я нашел для приглашений Array.Насколько я могу судить, я не могу понять, как предоставить опции в массиве, чтобы предложить пользователю выбрать, и это вообще не отражено в их документации.

{
  "$schema": "http://json-schema.org/schema",
  "id": "SchematicsIDXStoreGen",
  "title": "IDX Store Gen Schema",
  "type": "object",
  "properties": {
    "featureName": {
      "type": "string",
      "description": "The name of the store",
      "x-prompt": "What is the name of the store you'd like to create"
    },
    "module": {
      "type": "array",
      "description": "Select the appropriate module",
      "x-prompt": "What module are you adding this store to?" // I want to provide a list of available modules here.
    }
  },
  "required": ["featureName", "module"]
}

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

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

"modules": {
      "type": "array",
      "description": "description",
      "uniqueItems": true,
      "items": {
        "type": "string"
      },
      "x-prompt": {
        "message": "Which module would you like to select?",
        "type": "list",
        "multiselect": true,
        "items": [
          "firstOption",
          "secondOption",
          "thirdOption"
        ]
      }
    }
0 голосов
/ 07 мая 2019
ng new myProject

запросит у вас стиль, который вы можете выбрать из списка.

А если заглянуть внутрь проекта @ angular / cli ( \ packages \ schematics \ angular \ ng-новые ), видно как они это сделали:

"style": {
  "description": "The file extension or preprocessor to use for style files.",
  "type": "string",
  "default": "css",
  "enum": [
    "css",
    "scss",
    "sass",
    "less",
    "styl"
  ],
  "x-prompt": {
    "message": "Which stylesheet format would you like to use?",
    "type": "list",
    "items": [
      { "value": "css",  "label": "CSS" },
      { "value": "scss", "label": "SCSS   [ http://sass-lang.com/documentation/file.SASS_REFERENCE.html#syntax ]" },
      { "value": "sass", "label": "Sass   [ http://sass-lang.com/documentation/file.INDENTED_SYNTAX.html       ]" },
      { "value": "less", "label": "Less   [ http://lesscss.org                                                 ]" },
      { "value": "styl", "label": "Stylus [ http://stylus-lang.com                                             ]" }
    ]
  },
...