# Class: BaseReferenceEditorController

## core.form.editors.reference.controllers. BaseReferenceEditorController

Провайдер данных для ReferenceEditorView. Запрос к данным осуществляется через переданную в опции (`options.collection`) Backbone-коллекцию. В различных сценариях автоматически выбирается использование клиентской или серверной валидации.

#### new BaseReferenceEditorController(options)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `options` | Object | Объект опций. ###### Properties
  Name | Type | Description
  --- | --- | ---
  `collection` | Backbone.Collection | Backbone.Collection объектов с атрибутами `{ id, text }`. Коллекция должна реализовывать метод `fetch` с текстовой фильтрацией: `fetch({ data: { filter: 'myFilterText' } })`. Результатом выполнения метода `fetch` является заполненная данными коллекция и установленное свойство `collection.totalCount`, указывающее суммарное количество элементов, удовлетворяющих фильтру (может быть больше чем количество полученных).

  Source:
    - form/editors/impl/reference/controllers/BaseReferenceEditorController.js, line 20

### Methods

#### fetch(options) → {Promise}

  Запрос на получение данных с указанными фильтрами.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `options` | Object | Объект опций. ###### Properties
  Name | Type | Description
  --- | --- | ---
  `text` | Object | Активный текстовый фильтр.

  Source:
    - form/editors/impl/reference/controllers/BaseReferenceEditorController.js, line 47

  ##### Returns:

  объект-Promise, срабатывающий по окончанию загрузки.

  Type
    Promise

#### navigate(model)

  Запрос на осуществление навигации по заданному объекту (к примеру, открытие карточки пользователя). Должен быть реализован в классе-наследнике.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `model` | Backbone.Model | Модель объекта, на который требуется осуществить навигацию.

  Source:
    - form/editors/impl/reference/controllers/BaseReferenceEditorController.js, line 90