Условное свойство / подсказка угловой схемы - PullRequest
1 голос
/ 19 июня 2019

Я работаю над созданием собственной схемы.Эта схема будет отвечать за создание компонента (контейнера) с некоторым кодом.Шаблон этого компонента будет содержать несколько других компонентов.Одним из этих компонентов будет компонент баннера, который будет необязательным.Этот баннер будет отображать текст, который будет переведен на другие языки, поэтому я также должен попросить пользователя предоставить (по умолчанию) текст перевода, если баннер будет включен в компонент.Вот пример этого шаблона:

name@dasherize.component.html.template:

<% if (includeBanner) { %>
<app-banner [title]="'<%= translationModuleKey %>.banner.title' | translate"
                           [description]="'<%= translationModuleKey %>.banner.description' | translate">
</app-banner>
<% } %>
<app-other-component>

</app-other-component>

Здесьmy schema.json:

{
  "$schema": "http://json-schema.org/schema",
  "id": "MySchematics",
  "title": "My schematics",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the container",
      "x-prompt": "Container name"
    },
    "includeBanner": {
      "type": "boolean",
      "description": "Include banner",
      "default": "true",
      "x-prompt": "Include banner"
    },
    "bannerTitle": {
      "type": "string",
      "description": "Banner title",
      "x-prompt": "Banner title"
    },
    "bannerDescription": {
      "type": "string",
      "description": "Banner description",
      "x-prompt": "Banner description"
    },
    "translationModuleKey": {
      "type": "string",
      "description": "Root key for translations"
    }
  },
  "required": [
    "name", "includeBanner", "bannerTitle", "bannerDescription"
  ]
}

Моя проблема заключается в том, что когда пользователь установит для includeBanner значение true, поля bannerTitle и bannerDescription должны быть обязательными, и должно отображаться приглашение, если эти свойства не были предоставлены, ноесли includeBanner будет иметь значение false, bannerTitle и bannerDescription не требуются, и не должно отображаться приглашение заполнить эти свойства, если эти свойства не были предоставлены.Есть идеи как этого добиться?

...