Убирать кнопку очистки в элементе "Профиль связанной сущности" при изменении поля на карточке
Здравствуйте, подскажите пожалуйста.
Есть стандартный элемент "AccountProfile", который отображает данные контакта, работает отлично, но когда блокируешь поля страницы с использованием "IsModelItemsEnabled" то кнопка очистки в контейнере "AccountProfile" не пропадает.
Саму кнопку нашел, сделал замещение родителя, поставил bind на "visible", написал метод который попадает в bind, там читаю свойство "hideClearButton"
define("BaseProfileSchema", [], function() { return { methods: { isHideClearButton: function(){ return this.get("hideClearButton"); } }, diff: [ { "operation": "merge", "name": "ClearButton", "values": { "visible": { "bindTo": "isHideClearButton" } } } ] }; } );
на странице Page в секцию "modules" поместил модель, в котором "viewModelConfig" положил "hideClearButton"
"AccountProfile": { "config": { "schemaName": "AccountProfileSchema", "isSchemaConfigInitialized": true, "useHistoryState": false, "parameters": { "viewModelConfig": { "masterColumnName": "KtAccount", "hideClearButton": "checkIsModelItemsEnabled" } } } },
но если я передаю на прямую true или false тогда все отлично, но мне надо передать туда значение атрибута "IsModelItemsEnabled".
Пробовал создать метод
checkIsModelItemsEnabled: function(){ return this.get("IsModelItemsEnabled").value; },
но тогда this.get("hideClearButton") приходит строка "checkIsModelItemsEnabled", а если передать {"bindTo": "isHideClearButton"} тогда приходит строка bindTo: "isHideClearButton"
Нравится
Александр, видимо, нужно не напрямую в параметр передавать, а работать через атрибуты. Так сделано в схеме ServiceParameterGrid:
modules: { ServiceParameterPage: { moduleId: "ServiceRequestParameterPage", moduleName: "ConfigurationModuleV2", config: { isSchemaConfigInitialized: false, schemaName: "ServiceParameterPage", parameters: { viewModelConfig: { ServiceSchemaUId: { attributeValue: "ServiceSchemaUId" }, MethodUId: { attributeValue: "MethodUId" }, ParameterUId: { attributeValue: "ParameterUId" }, CanEditSchema: { attributeValue: "CanEditSchema" } } }, useHistoryState: false } } }, attributes: { /** * UId of schema in ServiceSchemaManager. */ ServiceSchemaUId: { dataValueType: Terrasoft.DataValueType.GUID }, /** * Is allow edit fields. */ CanEditSchema: { dataValueType: Terrasoft.DataValueType.BOOLEAN }, /** * UId of method in ServiceSchemaManager. */ MethodUId: { dataValueType: Terrasoft.DataValueType.GUID }, /** * UId of parameter in ServiceSchemaManager. */ ParameterUId: { dataValueType: Terrasoft.DataValueType.GUID } },
И далее программно взаимодействовать уже с ними.
Зверев Александр,
Пробовал через атрибут, к сожалению или я не пойму как надо, или не работает
Александр, пример для кнопки есть тут, биндинг метода к видимости работает, к доступности тоже должно, по идее. Попробуйте аналогично примерам оттуда.