2017-01-17 1 views
1

Je me demande si certains peuvent m'aider à obtenir les boutons, les appels de fonction et les tables affichées en utilisant metawidget jsonSchema.
Malheureusement, je peux le voir comme un rendu de forme pour nos applications, est-ce quelque chose que nous devons définir en externe? aussi si nous pouvions passer d'une forme à une autre en quelque sorteY at-il des boutons/appels de funtion et tables gérés dans MetaWidget - js

<script type="text/javascript"> 
      var mw = new metawidget.Metawidget(document.getElementById('metawidget'), { 

       inspector: new metawidget.inspector.CompositeInspector([ new metawidget.inspector.PropertyTypeInspector(), 
        function(toInspect, type, names) { 

         return { 
          properties: 
           name: { 
            required: true 
           }, 
           notes: { 
            type: "string", 
            large: true 
           }, 
           employer: { 
            type: "string", 
            section: "Work" 
           }, 
           department: { 
            type: "string" 
           } 
          } 
         }; 
        } ]), 

       layout: new metawidget.jqueryui.layout.TabLayoutDecorator(
        new metawidget.layout.TableLayout({ numberOfColumns: 2 })) 
      });   
      mw.toInspect = person; 
      mw.buildWidgets(); 

Au-dessus de schéma détient uniquement les propriétés pour rendre les champs, mais où pour spécifier les fonctionnalités?

+0

Qu'avez-vous fait jusqu'à présent? Avez-vous des échantillons ou pensez-vous trouver quelqu'un pour le faire simplement pour vous? – Peter4499

+0

Désolé, ajouté dans les modifications. –

Répondre

1

En supposant que l'objet que vous inspectez a des fonctions, dans le schéma JSON, vous pouvez spécifier la propriété avec type de function. Metawidget les affichera en tant que boutons (et câblera leur gestionnaire de clic).

Notez que PropertyTypeInspector trouvera des fonctions automatiquement, donc vous pouvez également envisager de combiner votre JsonSchemaInspector avec un PropertyTypeInspector en utilisant CompositeInspector.

Souvent, votre objet de données (par exemple var person = { firstname: 'Homer', surname: 'Simpson' }) et votre objet d'actions (par exemple var personActions = { save: function() {...}, delete: function() {...}}) sont séparés. Dans ces cas, vous pouvez positionner deux Metawidgets en tant que frères et sœurs (ou imbriqués les uns dans les autres), chacun pointant sur des objets différents. Pour les tables, utilisez un type de array. Dans le schéma JSON, vous imbriquez un objet items qui imbrique en outre un objet properties pour décrire les propriétés des éléments du tableau. Voir cet exemple http://blog.kennardconsulting.com/2016/04/metawidget-and-angular-arrays.html (c'est pour Angular, mais le schéma JSON est le même)