# DataSources
This module manages data sources within the editor. Once the editor is instantiated, you can use the following API to manage data sources:
const editor = grapesjs.init({ ... });
const dsm = editor.DataSources;
# Available Events
data:addAdded new data source.
editor.on('data:add', (dataSource) => { ... });
data:removeData source removed.
editor.on('data:remove', (dataSource) => { ... });
data:updateData source updated.
editor.on('data:update', (dataSource, changes) => { ... });
data:pathData record path update.
editor.on('data:path:SOURCE_ID.RECORD_ID.PROP_NAME', ({ dataSource, dataRecord, path }) => { ... });
editor.on('data:path', ({ dataSource, dataRecord, path }) => {
console.log('Path update in any data source')
});
data:pathSourceData record path update per source.
editor.on('data:pathSource:SOURCE_ID', ({ dataSource, dataRecord, path }) => { ... });
data:provider:loadData source provider load.
editor.on('data:provider:load', ({ dataSource, result }) => { ... });
data:provider:loadAllLoad of all data source providers (eg. on project load).
editor.on('data:provider:loadAll', () => { ... });
dataCatch-all event for all the events mentioned above.
editor.on('data', ({ event, model, ... }) => { ... });
- DataSourcesEventCallback
# Methods
- add - Add a new data source.
- get - Retrieve a data source by its ID.
- getAll - Retrieve all data sources.
- remove - Remove a data source by its ID.
- clear - Remove all data sources.
# add
Add new data source.
# Parameters
propsObject (opens new window) Data source properties.optsAddOptions (optional, default{})
# Examples
const ds = dsm.add({
id: 'my_data_source_id',
records: [
{ id: 'id1', name: 'value1' },
{ id: 'id2', name: 'value2' }
]
});
Returns DataSource Added data source.
# get
Get data source.
# Parameters
idString (opens new window) Data source id.
# Examples
const ds = dsm.get('my_data_source_id');
Returns DataSource Data source.
# getAll
Return all data sources.
# Examples
const ds = dsm.getAll();
Returns Array (opens new window)<DataSource>
# getValue
Get value from data sources by path.
# Parameters
pathString (opens new window) Path to value.defValueany Default value if the path is not found.opts{context: Record<string (opens new window), any>?}?
Returns any const value = dsm.getValue('ds_id.record_id.propName', 'defaultValue');
# setValue
Set value in data sources by path.
# Parameters
pathString (opens new window) Path to value in format 'dataSourceId.recordId.propName'valueany Value to set
# Examples
dsm.setValue('ds_id.record_id.propName', 'new value');
Returns Boolean (opens new window) Returns true if the value was set successfully
# remove
Remove data source.
# Parameters
id(String (opens new window) | DataSource) Id of the data source.optsRemoveOptions?
# Examples
const removed = dsm.remove('DS_ID');
Returns DataSource Removed data source.
# fromPath
Retrieve a data source, data record, and optional property path based on a string path. This method parses a string path to identify and retrieve the corresponding data source and data record. If a property path is included in the input, it will also be returned. The method is useful for accessing nested data within data sources.
# Parameters
pathString (opens new window) The string path in the format 'dataSourceId.recordId.property'.
# Examples
const [dataSource, dataRecord, propPath] = dsm.fromPath('my_data_source_id.record_id.myProp');
// e.g., [DataSource, DataRecord, 'myProp']
Returns [DataSource?, DataRecord?, String (opens new window)?] An array containing the data source, data record, and optional property path.
# store
Store data sources to a JSON object.
Returns Array (opens new window) Stored data sources.
# load
Load data sources from a JSON object.
# Parameters
dataObject (opens new window) The data object containing data sources.
Returns Object (opens new window) Loaded data sources.