Авто-очистка значения поля через правила когда поле становится невидимым

Здравствуйте!

Часто встречается задача - менять видимость поля по определённому условию. Это можно сделать привязав функцию к свойству "visible" разметки, либо через правила. Дополнительно нужно стирать уже ненужное / некорректное значение из поля, когда visible = false. Я это делал через attributes -> depenedencies, подозреваю также, что можно прибиндиться на свойство "value" в разметке.

Вопрос - как лучше это сделать (сбрасывать значение когда поле становится невидимым?) Нет ли такой возможности в правилах bind parameter? Вот допустим в правилах фильтрации есть настройка "autoClean: true". Нет ли чего-то подобного в bind parameter rules?

Пример через правила.

"UsrCandforVac": {
        "BindParameterVisibleUsrCandforVacByUsrCandGlobalStatus": {
                ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
                property: BusinessRuleModule.enums.Property.VISIBLE,
                logical: Terrasoft.LogicalOperatorType.AND,
                "conditions": [{
                        "leftExpression": {
                                "type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
                                "attribute": "UsrCandGlobalStatus"
                        },
                        "comparisonType": Terrasoft.ComparisonType.EQUAL,
                        "rightExpression": {
                                "type": BusinessRuleModule.enums.ValueType.CONSTANT,
                                "value": "5fc83e17-0996-4642-bb22-1f93869c6ebc" // UsrCandGlobalStatus == 'Employee'
                        }
                }]
        },

Спасибо

Нравится

2 комментария

Добрый день!

К сожалению, других на данный момент способов нет.
Если Вы хотите, чтобы данное поле очищалось при условии, то Вам необходимо биндиться на атрибут «Visible» и добавить собственный обработчик, который будет при false стирать значение.

Спасибо за ответ. Получается функция, которая должна отвечать за видимость и возвращать true/false, будет еще и совершать побочное действие - изменение значения :) Хотя, наверное это самый простой способ на данный момент..

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