Elena (обсуждение | вклад) Нет описания правки |
Oagapov (обсуждение | вклад) м Исправление орфографии (ссылки и код не затронуты) |
||
| Строка 6: | Строка 6: | ||
* Валидация значений (произвольный код) | * Валидация значений (произвольный код) | ||
* Динамическое скрытие/отображение | * Динамическое скрытие/отображение | ||
* | * Динамический запрет изменения значения (readonly) | ||
<blockquote>Использование данного функционала и дальнейшие примеры требуют базовых знаний языка JavaScript. Данные операции строятся на базе условных конструкций языка и используют клиентскую объектную модель платформы Эра.</blockquote>Все возможные операции настраиваются в параметрах свойства, на вкладке UI. | <blockquote>Использование данного функционала и дальнейшие примеры требуют базовых знаний языка JavaScript. Данные операции строятся на базе условных конструкций языка и используют клиентскую объектную модель платформы Эра.</blockquote>Все возможные операции настраиваются в параметрах свойства, на вкладке UI. | ||
| Строка 31: | Строка 31: | ||
Пример кода без указания строки для вывода:<syntaxhighlight lang="javascript"> | Пример кода без указания строки для вывода:<syntaxhighlight lang="javascript"> | ||
if (value_ !== '234') return false; else return true; | if (value_ !== '234') return false; else return true; | ||
</syntaxhighlight>В этом примере, при неуспешной валидации будет выведено сообщение validationMessage (если оно заполнено), либо системное сообщение по | </syntaxhighlight>В этом примере, при неуспешной валидации будет выведено сообщение validationMessage (если оно заполнено), либо системное сообщение по умолчанию. | ||
= Динамическое скрытие и отображение свойств = | = Динамическое скрытие и отображение свойств = | ||
| Строка 46: | Строка 46: | ||
Группы и вкладки автоматически скрываются, если в них не остается ни одного | Группы и вкладки автоматически скрываются, если в них не остается ни одного видимого элемента. При этом если в customItems явно задано условие видимости вкладки (аналогично полю - через visibilityConditionCode), данное правило применяться не будет. | ||
По умолчанию порядок следования вкладок определяется очередностью полей. Для его изменения можно перечислить вкладки в customItems в нужном порядке. Даже если вкладки пустые, а их наполнение определяется составом свойств класса, порядок будет применен. | По умолчанию порядок следования вкладок определяется очередностью полей. Для его изменения можно перечислить вкладки в customItems в нужном порядке. Даже если вкладки пустые, а их наполнение определяется составом свойств класса, порядок будет применен. | ||
| Строка 71: | Строка 71: | ||
= Сравнение ссылочных значений = | = Сравнение ссылочных значений = | ||
При | При сравнении ссылочных значений, к названию свойства необходимо добавлять постфикс _id. | ||
В поле соответственно, будет храниться идентификатор объекта, на который хранится ссылка. | В поле соответственно, будет храниться идентификатор объекта, на который хранится ссылка. | ||
| Строка 83: | Строка 83: | ||
= Проверка пустых значений = | = Проверка пустых значений = | ||
Для проверки пустых (незаполненных) значений любых типов, можно использовать | Для проверки пустых (незаполненных) значений любых типов, можно использовать сравнение с null:<syntaxhighlight lang="javascript"> | ||
this.ticket_id==null | this.ticket_id==null | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Текущая версия от 21:22, 27 октября 2026
Предыдущая статья курса: Отображение данных. Вкладки, группы, таблицы
Общая информация
Доступные операции с полями (свойствами) в контролах:
- Валидация значений (произвольный код)
- Динамическое скрытие/отображение
- Динамический запрет изменения значения (readonly)
Использование данного функционала и дальнейшие примеры требуют базовых знаний языка JavaScript. Данные операции строятся на базе условных конструкций языка и используют клиентскую объектную модель платформы Эра.
Все возможные операции настраиваются в параметрах свойства, на вкладке UI.
Валидация значений произвольным кодом

Платформа позволяет валидировать вводимые в свойства значения, для этого есть 3 основных механизма - маска, шаблон и произвольный код. Первые два механизма описаны в обзорной статье по свойствам классов.
Произвольный код для валидации задается в свойстве validationCode и переопределяет остальные настройки валидации, включая значение validationMessage, т.е. выводимое сообщение может также определяться кодом.
Код должен возвращать один из трёх вариантов:
- true - валидация успешна
- false - валидация неуспешна, использовать для вывода validationMessage
- произвольная строка - валидация неуспешна, использовать для вывода предоставленную строку
Для доступа к значению, введенному в свойства, необходимо использовать переменную value_
Пример кода для валидации:
if (value_ !== '234') return 'Должно быть 234!'; else return true;
В данном примере, происходит проверка значения и сравнение его со строкой 234, если оно не совпадает, то пользователю будет выведено сообщение "Должно быть 234!".
Пример кода без указания строки для вывода:
if (value_ !== '234') return false; else return true;
В этом примере, при неуспешной валидации будет выведено сообщение validationMessage (если оно заполнено), либо системное сообщение по умолчанию.
Динамическое скрытие и отображение свойств

Платформа позволяет скрывать и отображать свойства на карточке в зависимости от произвольных условий. Например, скрывать одни свойства, в зависимости от значений в других свойствах. Этот механизм является динамическим и работает без обновления карточки, т.е. если в результате работы с карточкой, условия для отображения начали выполняться, то скрытое поле автоматически отобразится.
Для этого свойству можно задать параметр visibilityConditionCode (редактор свойства, вкладка UI, группа Card).
Введенный в данное поле код должен возвращать true в случае если поле необходимо отобразить и false, если поле отображать нельзя.
Простейший пример кода:
this.mode === 'ext'
В этом случае поле text будет отображаться на карточка только если значение поля mode 'ext'.
Группы и вкладки автоматически скрываются, если в них не остается ни одного видимого элемента. При этом если в customItems явно задано условие видимости вкладки (аналогично полю - через visibilityConditionCode), данное правило применяться не будет.
По умолчанию порядок следования вкладок определяется очередностью полей. Для его изменения можно перечислить вкладки в customItems в нужном порядке. Даже если вкладки пустые, а их наполнение определяется составом свойств класса, порядок будет применен.
Динамический признак readonly
По аналогии с видимостью можно управлять редактируемостью полей через свойство readOnlyConditionCode, которое также находится в группе Card
this.mode === 'ext'
В этом случае пользователь сможет изменить значение поля text только если значение поля mode равно 'ext'
Сравнение значений перечислений (Enum)
При использовании перечислений в различных условиях, для того чтобы сравнивать значения полей с конкретными значениями перечислений необходимо обращаться к ним без кавычек:
E+[Имя перечисления].[Имя(name) элемента перечисления]
Пример для перечисления TicketStatus, значения open:
ETicketStatus.open
Пример кода для сравнения:
this.status === ETicketStatus.open
Сравнение ссылочных значений
При сравнении ссылочных значений, к названию свойства необходимо добавлять постфикс _id.
В поле соответственно, будет храниться идентификатор объекта, на который хранится ссылка.
Примеры:
this.linkedTicket_id == '387a0acf-ee49-4d51-bd39-887f34979911'
this.linkedTicket_id == this.previousTicket_id
Проверка пустых значений
Для проверки пустых (незаполненных) значений любых типов, можно использовать сравнение с null:
this.ticket_id==null
Следующая статья курса: Задание 5. Сложная карточка
Предыдущая статья курса: Отображение данных. Вкладки, группы, таблицы