class Types/collection:RecordSet

<p>Рекордсет - список записей, имеющих общий формат полей.</p>

class Types/_collection/RecordSet&lt;TData, T&gt;

Примечание

<p>Основные аспекты рекордсета (дополнительно к аспектам <a class="link-tag" data-className="Types/collection/ObservableList">Types/collection:ObservableList</a>):</p><p><ul></p><p> <li>манипуляции с форматом полей. За реализацию аспекта отвечает примесь <a class="link-tag" data-className="Types/entity/FormattableMixin">Types/entity:FormattableMixin</a>;</li></p><p> <li>манипуляции с сырыми данными посредством адаптера. За реализацию аспекта отвечает примесь <a class="link-tag" data-className="Types/entity/FormattableMixin">Types/entity:FormattableMixin</a>.</li></p><p></ul></p><p>Элементами рекордсета могут быть только <a class="link-tag" data-className="Types/entity/Record">записи</a>, причем формат полей всех записей должен совпадать.</p><p></p><p>Создадим рекордсет, в котором в качестве сырых данных используется JSON (адаптер для данных в таком формате используется по умолчанию):</p><pre> import {RecordSet} from 'Types/collection'; const characters = new RecordSet({ rawData: [{ id: 1, firstName: 'Tom', lastName: 'Sawyer' }, { id: 2, firstName: 'Huckleberry', lastName: 'Finn' }] }); characters.at(0).get('firstName'); // 'Tom' characters.at(1).get('firstName'); // 'Huckleberry' <p></pre></p><p>Создадим рекордсет, в котором в качестве сырых данных используется ответ БЛ СБИС (адаптер для данных в таком формате укажем явно):</p><pre> import {RecordSet} from 'Types/collection'; import {SbisService} from 'Types/source'; const ds = new SbisService({endpoint: 'Employee'}); ds.call('list', {department: 'designers'}).then((response) => { const designers = new RecordSet({ rawData: response.getRawData(), adapter: response.getAdapter() }); console.log(designers.getCount()); }); <p></pre></p>

Опции

adapter
<p>Адаптер, обеспечивающий доступ к необработанным данным определенного формата. По умолчанию поддерживаются необработанные данные в формате <a class="link-tag" data-className="Types/entity/FormattableMixin">Types/entity:FormattableMixin</a>.</p>
format
<p>{Types/_collection/format/Format|</p><p>Array.<Types/_entity/format/fieldsFactory/FieldDeclaration.typedef>|</p><p>Object.<String,String>|</p><p>Object.<String,Function>|</p><p>Object.<String,Types/_entity/format/fieldsFactory/FieldDeclaration.typedef>|</p><p>Object.<String,Types/_entity/format/Field></p><p>} Формат полей. Это может быть либо полный формат (в этом случае он должен быть определен как массив или экземпляр класса <a class="link-tag" data-className="Types/entity/FormattableMixin">Format</a>), либо как частичный формат (в этом случае он должен быть определен как простой объект).</p>
items
<p>Элементы списка</p>
keyProperty
<p>Название свойства записи, содержащего первичный ключ.</p>
metaData
<p>Метаданные</p>
metaFormat
<p>Формат всех полей метаданных.</p>
model
<p>Конструктор записей, порождаемых рекордсетом. По умолчанию <a class="link-tag" data-className="Types/entity/Model">Types/entity:Model</a>.</p>
rawData
<p>Данные в необработанном формате, которые могут быть распознаны через определенный адаптер.</p>
versionCallback
<p>Обработчик изменения версии</p>

Поля

defaultModelprotected
<p>Модель по умолчанию</p>
resetChangesCountprotected
<p>Количество измененных элементов, что важно для генерации одного события с действием ACTION_RESET вместо нескольких.</p>
silentChangedItemsprotected
<p>Элементы, измененные во время работы события, были выключены.</p>
beforeRaiseOffprotected
<p>Состояние коллекции до выключения генерации событий</p>
blockChangesMessageprotected
<p>Сообщение для режима блокировки изменений</p>
sessionItemContentsGetterprotected
<p>Метод получения содержимого элемента коллекции (если такое поведение поддерживается)</p>
eventRaisingprotected
<p>Генерация событий включена</p>
eventRaisingTriggerprotected
<p>Hooks to implement additional behaviour when event rasing occuires</p>
eventBusChannelprotected
<p>Канал событий</p>
eventsQueueprotected
<p>Очередь событий</p>
publishedEventsprotected
<p>Декларированные события</p>
ACTION_ADD
<p>Изменение коллекции: добавлены элементы</p>
ACTION_CHANGE
<p>Изменение коллекции: изменены элементы</p>
ACTION_MOVE
<p>Изменение коллекции: перемещены элементы</p>
ACTION_REMOVE
<p>Изменение коллекции: удалены элементы</p>
ACTION_REPLACE
<p>Изменение коллекции: заменены элементы</p>
ACTION_RESET
<p>Изменение коллекции: значительное изменение</p>
indexerprotected
<p>Индексатор элементов.</p>
destroyed
<p>Экземпляр был разрушен</p>
_mediator
<p>Медиатор, отвечающий за связи между сущностями</p>
optionsdeprecatedprotected
getOptionsprotected
<p>Метод реализован в OptionsToPropertyMixin.</p>
instanceNumberprotected
<p>Уникальный номер инстанса</p>
moduleNameprotected
<p>Название класса-конструктора.</p>
cowprotected
<p>Работа с необработанными данными в режиме Copy-On-Write.</p>
formatCloneprotected
<p>Копия _format, которая используется для кэширования в getFormat()</p>
formatUnlinkedprotected
<p>Значение _$format не связано с исходным значением.</p>
rawDataAdapterprotected
<p>Экземпляр адаптера для работы с необработанными данными.</p>
rawDataFieldsprotected
<p>Список имен полей, взятых из адаптера необработанных данных.</p>
instanceIdprotected
<p>Уникальный идентификатор</p>
instancePrefixprotected
<p>Префикс значений идентификатора</p>

Методы

_addChildprotected
<p>Добавляет отношение с другой сущностью</p>
_addItemsToRawDataprotected
<p>Вставляет сырые данные записей в сырые данные рекордсета</p>
_addRawDataFieldprotected
<p>Добавляет поле в _rawDataFields.</p>
_analizeUpdateSessionprotected
<p>Анализирует серию обновлений, генерирует события об изменениях</p>
_assignRawDataprotected
<p>Переустанавливает сырые данные</p>
_buildFieldprotected
<p>Создает формат поля по его описанию.</p>
_buildFormatprotected
<p>Строит формат по описанию.</p>
_buildRecordprotected
<p>Создает новый экземпляр модели</p>
_checkAdapterCompatibilityprotected
<p>Проверяет совместимость адаптеров.</p>
_checkItemprotected
<p>Проверяет, что переданный элемент - это запись с идентичным форматом</p>
_checkModuleNameprotected
<p>Проверяет, что в прототипе указано имя модуля для RequireJS, иначе не будет работать десериализация</p>
_childChangedprotected
<p>Рекурсивно уведомляет родительские сущности об изменении дочерней</p>
_clearFormatprotected
<p>Очищает формат полей. Это работает, только если формат не был объявлен.</p>
_clearFormatCloneprotected
<p>Очизает _formatClone.</p>
_clearIndexerprotected
<p>Очищает индексатор коллекции</p>
_createMediatorprotected
<p>Создает посредника для установления отношений с детьми</p>
_createRawDataAdapterprotected
<p>Создает экземпляр адаптера для определенного типа данных (таблица, запись, декоратор или метаданные).</p>
_extractPacksByListprotected
<p>Разбивает элементы списка на пачки в порядке их следования в списке.</p>
_finishUpdateSessionprotected
<p>Завершает серию обновлений</p>
_getAdapterprotected
<p>Возвращает общий экземпляр адаптера.</p>
_getDefaultAdapterdeprecatedprotected
<p>Возвращает адаптер по умолчанию, как это и должно быть.</p>
_getFieldFormatprotected
<p>Возвращает формат поля с указанным именем.</p>
_getFieldTypeprotected
<p>Возвращает тип поля по его формату.</p>
_getFormatprotected
<p>Возвращает формат поля.</p>
_getIndexerprotected
<p>Возвращает индексатор коллекции</p>
_getMediatorprotected
<p>Возвращает посредника для установления отношений с детьми</p>
_getOptionsprotected
<p>Возвращает опции объекта</p>
_getRawDataprotected
<p>Возвращает необработанные данные из адаптера.</p>
_getRawDataAdapterprotected
<p>Возвращает экземпляр адаптера для определенного типа данных.</p>
_getRawDataFieldsprotected
<p>Возвращает список имен полей, взятых из адаптера необработанных данных.</p>
_getRawDataFromOptionprotected
<p>Возвращает исходные данные, введенные через параметр.</p>
_getRecordprotected
<p>Возвращает запись по индексу</p>
_getSerializableStateprotected
<p>Возвращает всё, что нужно сложить в состояние объекта при сериализации, чтобы при десериализации вернуть его в это же состояние</p>
_hasFormatprotected
<p>Псевдоним для hasDeclaredFormat().</p>
_hasMediatorprotected
<p>Возвращает признак наличия посредника</p>
_hasSameMediatorprotected
<p>Возвращает признак наличия одинакового посредника</p>
_initByRawDataprotected
<p>Пересоздает элементы из сырых данных</p>
_initRawDataAdapterprotected
<p>Инициализирует экземпляр адаптера.</p>
_isNeedNotifyCollectionChangeprotected
<p>Возвращает признак, что нужно генерировать события об изменениях коллекции</p>
_isNeedNotifyCollectionItemChangeprotected
<p>Возвращает признак, что нужно генерировать события об изменениях элементов коллекции</p>
_isUnserializedprotected
<p>Check if the instance was unserialized.</p>
_isValidIndexprotected
<p>Проверяет корректность индекса</p>
_itemsSliceprotected
<p>Извлекает элементы, входящие в указанный отрезок</p>
_itemsToArrayprotected
<p>Приводит переденные элементы к массиву.</p>
_normalizeItemprotected
<p>Returns record copy with target format</p>
_normalizeItemsprotected
<p>Normalizes given records by producing their copies with recordset's format</p>
_notifyprotected
<p>Извещает о наступлении события. Если в процессе извещения приходит очередное событие, то извещение о нем будет отправлено после выполнения обработчиков предыдущего.</p>
_notifyCollectionChangeprotected
<p>Генерирует событие об изменении коллекции</p>
_notifyItemChangeprotected
<p>Генерирует событие об изменении элемента</p>
_notifyLaterprotected
<p>Ставит в очередь извещение о наступлении события.</p>
_notifyPushQueueprotected
<p>Добавляет извещение о событии в очередь.</p>
_notifyQueueprotected
<p>Инициирует выполнение обработчиков из очереди событий</p>
_parentChangedprotected
<p>Уведомляет дочерние сущности об изменении родительской</p>
_publishprotected
<p>Деклариует наличие событий</p>
_reindexprotected
<p>Переиндексирует список</p>
_removeChildprotected
<p>Удаляет отношение с другой сущностью</p>
_removeFromQueueprotected
<p>Удаляет из очереди все обработчики указанного события</p>
_resetRawDataAdapterprotected
<p>Сбрасывает экземпляр адаптера для определенного типа данных.</p>
_resetRawDataFieldsprotected
<p>Сбрасывает _rawDataFields.</p>
_setMediatorprotected
<p>Устанавливает посредника для установления отношений с детьми</p>
_setSerializableStateprotected
<p>Проверяет сериализованное состояние перед созданием инстанса. Возвращает метод, востанавливающий состояние объекта после создания инстанса.</p>
_spliceprotected
<p>Вызывает метод splice.</p>
_startUpdateSessionprotected
<p>Запускает серию обновлений</p>
_unlinkFormatOptionprotected
<p>Разрыв связи _$format с исходным значением.</p>
acceptChanges
<p>Подтверждает изменения всех записей с момента предыдущего вызова acceptChanges().</p><p>Обрабатывает состояние записей следующим образом:</p><p><ul></p><p> <li>Changed и Added - меняют state на Unchanged;</li></p><p> <li>Deleted - удаляются из рекордсета, а их state становится Detached;</li></p><p> <li>остальные не меняются.</li></p><p></ul></p>
add
<p>Добавляет запись в рекордсет путем создания новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.</p><p>Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:</p><p>лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.</p><p>При недопустимом at генерируется исключение.</p>
addField
<p>Добавляет поле в формат.</p>
append
<p>Добавляет копии записей другой коллекции в конец рекордсета.</p><p>Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.</p>
assign
<p>Заменяет записи рекордсета копиями записей другой коллекции.</p><p>Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.</p>
at
<p>Возвращает элемент по позиции.</p><p>При недопустимом index возвращает undefined.</p>
clear
<p>Очищает список.</p>
clone
<p>Создает новый объект, который являтся копией текущего экземпляра.</p>
constructor
<p>Конструктор объекта, принимающий набор опций в качестве первого аргумента</p>
destroy
<p>Разрушает экземпляр</p>
each
<p>Перебирает записи рекордсета.</p>
extend
fromJSON
<p>Конструирует экземпляр класса из сериализованного состояния</p>
getAdapter
<p>Возвращает адаптер для обработки необработанных данных.</p>
getCount
<p>Возвращает количество элементов списка</p>
getEnumerator
<p>Возвращает энумератор для перебора записей рекордсета.</p><p>Пример использования можно посмотреть в модуле <a class="link-tag" data-className="Types/collection/IEnumerable">Types/collection:IEnumerable</a>.</p>
getEventHandlers
<p>Возвращет массив подписчиков на событие</p>
getFormat
<p>Возвращает формат поля в режиме "только для чтения".</p>
getIndex
<p>Возвращает позицию первого вхождения элемента в список.</p>
getInstanceId
<p>Возвращает уникальный идентификатор экземпляра класса.</p>
getKeyProperty
<p>Возвращает название свойства записи, содержащего первичный ключ</p>
getMetaData
<p>Возвращает метаданные RecordSet'а.</p><p>Подробнее о метаданных смотрите в описании опции <a class="link-tag" data-className="Types/collection/RecordSet" data-category="option" data-member="metaData">metaData</a>.</p>
getModel
<p>Возвращает конструктор записей, порождаемых рекордсетом.</p>
getRawData
<p>Возвращает необработанные данные (клонирует, если есть объект).</p>
getRecordById
<p>Возвращает запись по ключу.</p><p>Если записи с таким ключом нет - возвращает undefined.</p>
getVersion
<p>Возвращает версию объекта.</p><p>Версия соответсвует некому состоянию объекта и меняется при измении как то значимых свойств объекта, например для рекорда это будет изменение значений полей.</p>
hasDeclaredFormat
<p>Возвращает признак того, что формат был задан явно.</p>
hasEventHandlers
<p>Проверяет наличие подписки на событие</p>
isDestroyedprotected
isEqual
<p>Проверяет эквивалентность текущего объекта другому объекту.</p>
isEventRaising
<p>Возвращает признак, включена ли генерация событий об изменении проекции</p>
merge
<p>Объединяет два рекордсета.</p>
move
<p>Перемещает элемент с одной позиции на другую.</p><p>При недопустимом from или to генерируется исключение.</p>
patch
<p>Создает из рекордсета патч - запись с измененными, добавленными записями и ключами удаленных записей.</p>
prepend
<p>Добавляет копии записей другой коллекции в начало рекордсета.</p><p>Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:</p><p>лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.</p>
remove
<p>Удаляет элемент из списка (первый найденный). Элементы, следующие за удаленным, смещаются вверх.</p>
removeAt
<p>Удаляет элемент в указанной позиции. Элементы, следующие за удаленным, смещаются вверх.</p><p>При недопустимом index генерируется исключение.</p>
removeField
<p>Удаляет поле из формата по его имени.</p>
removeFieldAt
<p>Удаляет поле из формата по его позиции.</p>
replace
<p>Заменяет запись в указанной позиции через создание новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.</p><p>Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.</p><p>При недопустимом at генерируется исключение.</p>
resetDeclaredFormat
<p>Обнуляет явно заданный формат.</p>
setEventRaising
<p>Включает/выключает генерацию событий об изменении коллекции</p>
setKeyProperty
<p>Устанавливает название свойства записи, содержащего первичный ключ</p>
setMetaData
<p>Устанавливает метаданные RecordSet'а.</p><p>Подробнее о метаданных смотрите в описании опции <a class="link-tag" data-className="Types/collection/RecordSet" data-category="option" data-member="metaData">metaData</a>.</p><p><ul></p><p> <li>path - путь для хлебных крошек, возвращается как <a class="link-tag" data-className="Types/collection/RecordSet">Types/collection:RecordSet</a>;</li></p><p> <li>results - строка итогов, возвращается как <a class="link-tag" data-className="Types/entity/Record">Types/entity:Record</a>. Подробнее о конфигурации списков для отображения строки итогов читайте в <a class="link-tag" data-className="Types/collection/RecordSet">этом разделе</a>;</li></p><p> <li>more - Boolean - есть ли есть записи для подгрузки (используется для постраничной навигации).</li></p><p></ul></p>
setRawData
<p>Устанавливает необработанные данные.</p>
subscribe
<p>Добавляет подписку на событие</p>
toJSON
<p>Возвращает сериализованный экземпляр класса</p>
unsubscribe
<p>Отменяет подписку на событие</p>

События

onCollectionChange
<p>После изменения коллекции</p>
onCollectionItemChange
<p>После изменения элемента коллекции</p>
onEventRaisingChange
<p>После изменения режима генерации событий</p>
onPropertyChange
<p>После изменения набора свойств объекта.</p>

Тайпдефы

MergeOptions
11/27/2020Мальцев А.А.