# DataRecord
The DataRecord class represents a single record within a data source.
It extends the base Model class and provides additional methods and properties specific to data records.
Each DataRecord is associated with a DataSource and can trigger events when its properties change.
# DataRecord API
# Example of Usage
const record = new DataRecord({ id: 'record1', name: 'value1' }, { collection: dataRecords });
const path = record.getPath(); // e.g., 'SOURCE_ID.record1'
record.set('name', 'newValue');
# Parameters
propsDataRecordProps Properties to initialize the data record.optsObject (opens new window) Options for initializing the data record.
# getPath
Get the path of the record. The path is a string that represents the location of the record within the data source. Optionally, include a property name to create a more specific path.
# Parameters
propString (opens new window)? Optional property name to include in the path.optsObject (opens new window)? Options for path generation.opts.useIndexBoolean (opens new window)? Whether to use the index of the record in the path.
# Examples
const pathRecord = record.getPath();
// e.g., 'SOURCE_ID.record1'
const pathRecord2 = record.getPath('myProp');
// e.g., 'SOURCE_ID.record1.myProp'
Returns String (opens new window) The path of the record.
# getPaths
Get both ID-based and index-based paths of the record. Returns an array containing the paths using both ID and index.
# Parameters
propString (opens new window)? Optional property name to include in the paths.
# Examples
const paths = record.getPaths();
// e.g., ['SOURCE_ID.record1', 'SOURCE_ID.0']
Returns Array (opens new window)<String (opens new window)> An array of paths.
# triggerChange
Trigger a change event for the record. Optionally, include a property name to trigger a change event for a specific property.
# Parameters
propString (opens new window)? Optional property name to trigger a change event for a specific property.
# set
Set a property on the record, optionally using transformers. If transformers are defined for the record, they will be applied to the value before setting it.
# Parameters
attributeName(String (opens new window) | Object (opens new window)) The name of the attribute to set, or an object of key-value pairs.valueany? The value to set for the attribute.optionsObject (opens new window)? Options to apply when setting the attribute.options.avoidTransformersBoolean (opens new window)? If true, transformers will not be applied.
# Examples
record.set('name', 'newValue');
// Sets 'name' property to 'newValue'
Returns DataRecord The instance of the DataRecord.