3.6.3.1. Базовые

Модель поведения и отображения каждого компонента определяеются описанием, которое содержится в форме

Описание компонентов имеют базовые свойства, присутствующие у всех компонентов, а так же специфические для каждого типа

Базовое описание компонента выглядит следующим образом

{
    "id": "person",                       // идентификатор компонента
    "type": "type",                       // тип компонента
    "style": {                            // стиль компонента
        "align": "center",
        "font": "Courier New",
        "fontsize": "12",
        "bold": true,
        "italic": false,
        "underline": false,
        "strike": false,
        "height": "20",
        "width": "200"
    },
    "config": {                           // конфигурация компонента
        "read-only": true,                // заблокировать от изменений пользователем
        "script": "model.setValue('1');"  // скрипт компонента
    },
    "required": true,                     // обязательное поле
    "data": {                             // дефолтные данные компонента
        "id": "person",
        "type": "type",
        "value": "Дефолтное значение"
    }
}

class AS.FORMS.Model()

Базовая модель для всех компонентов

Типы событий

каждый компонент может добавлять свои специфичные типы событий

valueChange - событие изменения значения компонента, функция обратного вызова принимает следующие параметры

Object event: возникшее событие

AS.FORMS.Model() model: модель

markInvalid - пометить значение компонента как не валидное, функция обратного вызова принимает следующие параметры

Object event: возникшее событие

AS.FORMS.Model() model: модель

unmarkInvalid - пометить значение компонента как валидное, функция обратного вызова принимает следующие параметры

Object event: возникшее событие

AS.FORMS.Model() model: модель

modelDestroyed - событие уничтожения модели компонента, функция обратного вызова принимает следующие параметры
Object event: возникшее событие
AS.FORMS.Model.trigger(eventType[, args])

Инициировать событие

Аргументы:
  • eventType (String) – тип события
  • args (Array) – аргументы, которые будут переданы в callback
AS.FORMS.Model.on(eventType, callback)

подписаться на событие

Аргументы:
  • eventType (String) – тип события
  • callback (Function) – функция обратного вызова (количество принимаемых аргументов засивит от события)
AS.FORMS.Model.off(eventType, callback)

отписаться от события

Аргументы:
  • eventType (String) – тип события
  • callback (Function) – функция обратного вызова
AS.FORMS.Model.asfProperty

Определение компонента из описания формы

AS.FORMS.Model.playerModel

Модель проигрывателя

AS.FORMS.Model.fireChangeEvents()

Вызов событий изменения значения формы

AS.FORMS.Model.isEmpty()
Результат:true: Значение компонента не задано

false: Значение компонента задано

AS.FORMS.Model.setValue(newValue)

Вставить новое значение и отправить уведомление всем подписанным объектам, в т.ч. отображению

Аргументы:
  • newValue (Object) – Значение компонента (Тип ринимаемого значения зафимит от компонента)
AS.FORMS.Model.getErrors()

Получение ошибок заполнения поля согласно настройкам asfProperty

Если компоненту необходимо возвращать свои специфические ошибки, то реализуйте в модели компонента метод getSpecialErrors. Метод должен возвращать список специфических ошибок в том же формате, что и данный метод

Результат:[object] Если массив пустой, значит ошибки отсутствуют, иначе - его элементы имеют поля:
  • errorCode - код ошибки;
  • id - идентификатор компонента.

Возможные коды ошибок:

  • emptyValue
  • wrongValue
  • deletedValue
  • valueTooHigh
  • valueTooSmall

Для одного и того же компонента может быть как несколько ошибок, так может и не быть ни одной.

AS.FORMS.Model.getLocale()

Получение локали, настроенной в компоненте

Результат:String Локаль компонента или AS.FORMS.OPTIONS.locale
AS.FORMS.Model.getHTMLValue()
Результат:String HTML-представлениe текстового значения поля со стилями
AS.FORMS.Model.getValue()
Результат:String значение компонента (тип возвращаемого значения зависит от типа компонента)
AS.FORMS.Model.getTextValue()
Результат:String текстовое значение компонента
AS.FORMS.Model.getAsfData([blockNumber])
Аргументы:
  • blockNumber (Number) – Номер строки динамической таблицы (если это компонент статической таблицы, то передавать эту переменную не нужно)
Результат:

asfData Данные компонента

AS.FORMS.Model.setAsfData(asfData)

Вставить значение asfData

Аргументы:
  • asfData (asfData) – Данные компонента

class AS.FORMS.View()

Базовое отображение всех компонентов.

AS.FORMS.View.model

Модель. Наследует AS.FORMS.Model

AS.FORMS.View.container

Контейнер, в котором будет отрисовываться отображение

AS.FORMS.View.input

Поле ввода для некоторых компонентов:

  • текстовое поле
  • числовое поле
  • многострочный текст
AS.FORMS.View.playerView

Отображение проигрывателя

AS.FORMS.View.unmarkInvalid()

Убрать пометку неправильно заполненного поля

AS.FORMS.View.markInvalid()

Пометить поле как неправильно заполненное

AS.FORMS.View.checkValid()

Проверить корректность текущего значения (если поле заполнено неверно, то вызовется метод markInvalid)

AS.FORMS.View.setEnabled(enabled)

Сделать доступным или недоступным для редактирования

Аргументы:
  • enabled (boolean) – true/false
AS.FORMS.View.setVisible(visible)

Сделать видимым или невидимым

Аргументы:
  • visible (boolean) – true/false
AS.FORMS.View.updateValueFromModel()

Обновить отображение согласно значению модели