Убирать кнопку очистки в элементе "Профиль связанной сущности" при изменении поля на карточке
Здравствуйте, подскажите пожалуйста.
Есть стандартный элемент "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
}
},И далее программно взаимодействовать уже с ними.
Зверев Александр,
Пробовал через атрибут, к сожалению или я не пойму как надо, или не работает
Александр, пример для кнопки есть тут, биндинг метода к видимости работает, к доступности тоже должно, по идее. Попробуйте аналогично примерам оттуда.