A section of a parent form that edits a nested part of the same record, such as a JSON column or a related row, using its own child inputs.
- Editing a nested object inside one record, where the inputs should read and write below a shared field path rather than at the top level.
Binds to a field path on a parent Form. The inputs placed inside it address paths relative to that field, so they do not each need the full path.
- An address block stored as a JSON column on the main record.
- Reaching for it to edit a list of related records — that is a Subform Table.
- Placing it outside a Form; it has nothing to bind to on its own.
Use instead
- Subform table — Use instead when the nested data is a list of rows rather than a single nested object.
Configure these in the Application Designer property panel. Group headings mirror the editor where possible. Data Source is where the element gets its rows or field binding (a view/query, a connector operation, or a parent form field). References appear only for view-backed sources and map foreign-key ID columns to readable labels from another view.
- Where this element loads its data (view, query, connector, or element).Default: none
Inside dataSource: (dataSource)
- Another element on the page whose data backs this field.Default: none
- Path into the source element’s data (property segments).Default: none
- No size of its own: dropped at the platform default of 1 × 1 grid cells and resized on the page.
This container accepts nested elements in these slots:
| slot | accepts |
|---|---|
content | any element |
graph TD root["default_sub_form"] root --> content["content slot"]
Drag this element into one of these containers:
- Form — Always lives inside a Form, which owns the record being edited and the save action.
| |