2016-06-10 2 views
0

У меня есть инспектор, который содержит список объектов, имеющих имя и тип, и мои пользовательские данные. Скажем, я хочу показать свою пользовательскую базу данных по выбору атрибута type. Я могу сделать это с помощью «когда», но это только если это простое поле с определенным путем, например «attr/type». Поскольку он находится в списке, индекс меняется, поэтому я не знаю, как указать путь для проверки того, какой тип выбран. Любая идея для этой проблемы?Поле отображения на основе другого в JointJS

data: { 
         type : 'list', 
         item: { 
          type: 'object', 
          properties: { 
           'name' : { 
            type : 'text', 
            group : 'text', 
            label : 'Name', 
            index : 1 
           }, 
           type : { 
            type : 'select', 
            group : 'text', 
              label : 'Type', 
              options: ['Text','Number','Date','Select','Text Area'], 
            index : 2 
           }, 
           required : { 
            type : 'toggle', 
            group : 'validation', 
            label : 'Required', 
            index : 3 
           }, 
           'min-length' : { 
            type : 'number', 
            group : 'validation', 
            min : 0, 
            label : 'Min Length', 
            index : 4 
           }, 
           'max-length' : { 
            type : 'number', 
            group : 'validation', 
            min : 1, 
            label : 'Max Length', 
            index : 5 
           }, 
           'min' : { 
            type : 'number', 
            group : 'validation', 
            min : 0, 
            label : 'Min', 
            index : 6 
           }, 
           'max' : { 
            type : 'number', 
            group : 'validation', 
            min : 1, 
            label : 'Max', 
            index : 7 
           }, 
           'message' : { 
            type : 'text', 
            group : 'validation', 
            label : 'Error message', 
            index : 8 
           }, 
           'regex' : { 
            type : 'text', 
            group : 'validation', 
            label : 'Regex', 
            index : 9 
           }, 
           'options' : { 
            type : 'list', 
            item : { 
             type:'object', 
             properties: { 
              'text' : { 
               type : 'text', 
               label : 'Text', 
               index : 1 
              }, 
              'value' :{ 
               type : 'text', 
               label : 'Value', 
               index : 2 
              } 
             } 
            }, 
            group : 'validation', 
            label : 'Options', 
            index : 10 
           } 

          } 
         }, 
         group : 'validation', 
         label : 'Input', 
         index : 1 
        } 

ответ

0

Я боюсь, что вам нужно создать поле для каждого типа из коллекции имени/типа. Аналогичная проблема решается здесь:

operator: { 
       type: 'select', 
       options: ['over', 'in', 'out', 'atop', 'xor', 'arithmetic'], 
      }, 
      k1: { 
       type: 'number', 
       when: { eq: { operator: 'or' } } 
      }, 
      k2: { 
       type: 'number', 
       when: { eq: { operator: 'arithmetic' } } 
      }, 
      k3: { 
       type: 'number', 
       when: { eq: { operator: 'xor' } } 
      }, 
      k4: { 
       type: 'number', 
       when: { eq: { operator: 'over' } } 
      } 

EDIT:

это очевидно, этот подход не может быть использован в вашем случае ... when: { eq: { 'labels/0/type': 'Number' } } XPath является действительным, но бесполезно. До сих пор это не выполнимо, мы создали для этого новую проблему. Было бы неплохо иметь что-то вроде when: { eq: { '*/type': 'Number' } }, где * может быть текущим контекстом, поэтому вы сможете получить текущий индекс.

+0

Не могли бы вы быть более подробными? Я отредактировал свое сообщение, чтобы предоставить дополнительную информацию. Как вы можете видеть, я хочу установить свое поле «regex», только когда мой тип «Date» или «Number». Спасибо –

+0

какое-либо предложение решение sir? –

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