Есть ли кнопки / вызовы функций и таблицы, обрабатываемые в MetaWidget - js

Мне интересно, могут ли некоторые помочь мне отобразить кнопки, вызовы функций и таблицы с помощью мета-виджета jsonSchema.
К сожалению, я могу видеть это как средство визуализации формы для наших приложений, это то, что нам нужно определить внешне? также, если бы мы могли как-то перемещаться из одной формы в другую

<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();

Выше схема содержит только свойства для отображения полей, но где указать функциональные возможности?

1 ответ

Предполагая, что проверяемый объект имеет функции, в схеме JSON вы можете указать свойство с помощью type из function, Metawidget отобразит их как кнопки (и подключит их обработчик кликов).

Обратите внимание, что PropertyTypeInspector найдет функции автоматически, так что вы также можете рассмотреть возможность объединения JsonSchemaInspector с PropertyTypeInspector с помощью CompositeInspector,

Часто ваш объект данных (например, var person = { firstname: 'Homer', surname: 'Simpson' }) и объект ваших действий (например, var personActions = { save: function() {...}, delete: function() {...}}) являются отдельными. В этих случаях вы можете позиционировать два мета-виджета как братьев и сестер (или вложенных друг в друга), каждый из которых указывает на разные объекты.

Наконец для таблиц используйте type из array, В схеме JSON вы вкладываете items объект, который далее гнездится properties объект, чтобы описать свойства элементов массива. Посмотрите этот пример http://blog.kennardconsulting.com/2016/04/metawidget-and-angular-arrays.html (это для Angular, но схема JSON такая же)

Другие вопросы по тегам