# 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
props
DataRecordProps Properties to initialize the data record.opts
Object (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
prop
String (opens new window)? Optional property name to include in the path.opts
Object (opens new window)? Options for path generation.opts.useIndex
Boolean (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
prop
String (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
prop
String (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.value
any? The value to set for the attribute.options
Object (opens new window)? Options to apply when setting the attribute.options.avoidTransformers
Boolean (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.