2016-06-10 19 views
0

Ich habe einen Inspektor, der eine Liste von Objekt enthält Name und Typ und meine benutzerdefinierten Daten. Lassen Sie mich sagen, dass ich meine benutzerdefinierte Datenbank auf der Wahl des Typattributs anzeigen möchte. Ich kann das mit 'wenn' tun, aber nur wenn es sich um ein einfaches Feld mit einem bestimmten Pfad wie "attr/type" handelt. Da es in der Liste ist, variiert der Index, so weiß ich nicht, wie man den Pfad angibt, um zu überprüfen, ob welcher Typ ausgewählt ist. Irgendeine Idee für dieses Problem?Anzeigefeld basierend auf einem anderen in 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 
        } 

Antwort

0

Ich habe Angst, Sie müssen ein Feld für jeden Typ aus der Name/Typ-Sammlung erstellen.

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:

es ist offensichtlich, dieser Ansatz in Ihrem Fall ... nicht XPath when: { eq: { 'labels/0/type': 'Number' } } gültig, aber nutzlos verwendet werden, ähnliches Problem hier gelöst. Bis jetzt ist es nicht einfach, wir haben ein neues Thema dafür aufgesetzt. Wäre schön, etwas wie when: { eq: { '*/type': 'Number' } } zu haben, wo * aktueller Kontext sein könnte, also würden Sie in der Lage sein, gegenwärtigen Index zu erhalten.

+0

Könnten Sie mehr Detail sein? Ich habe meinen Beitrag bearbeitet, um weitere Informationen bereitzustellen. Wie du sehen kannst, möchte ich mein 'Regex'-Feld nur dann erscheinen lassen, wenn mein' Typ '' Datum 'oder' Nummer 'ist. Vielen Dank –

+0

irgendwelche Vorschläge Lösung Sir? –