diff --git a/src/services/schema-form.js b/src/services/schema-form.js index a3f531e54..e0ce35e7c 100644 --- a/src/services/schema-form.js +++ b/src/services/schema-form.js @@ -310,6 +310,33 @@ angular.module('schemaForm').provider('schemaForm', var stdForm = service.defaults(schema, ignore, options); + //simple case, we have a "...", just put the stdFormRemains there + var idRest = form.indexOf('...'); + if (idRest !== -1) { + var formKeys = form.map(function(obj) { + if (typeof obj === 'string'){ + return obj; + } else if (obj.key) { + return obj.key; + } + }).filter(function(element) { + return element !== undefined; + }); + + var stdFormRemains = stdForm.form.map(function(obj) { + isInside = formKeys.indexOf(obj.key[0]) !== -1; + if (!isInside) { + return obj; + } + }).filter(function(element) { + return element !== undefined; + }); + + form = form.slice(0, idRest) + .concat(stdFormRemains) + .concat(form.slice(idRest + 1)); + } + //simple case, we have a "*", just put the stdForm there var idx = form.indexOf('*'); if (idx !== -1) {