Публикация
Как сделать все элементы детали Адреса на странице Контрагента недоступными для редактирования?
14 июня 2018 02:25
Вопрос
Как сделать все элементы детали Адреса на странице Контрагента недоступными для редактирования? Версия 7.2.0.
Ответ
Пример реализации функционала для схемы AddressDetail:
1) можно добавить новый метод enableDetailControls:
this.methods.enableDetailControls = function(viewConfig, enabled) { if (!viewConfig.items) { return; } viewConfig.items.forEach(function(item) { item.enabled = enabled; }, this); };
2) далее вызвать этот метод внутри метода getCustomItemView после полного формирования конфигурации представления, добавив необходимые условия. Например, перед строкой return viewConfig:
this.methods.getCustomItemView = function(viewModel, itemKey, action, types, itemViewModel) { var viewConfig = {}; ... var enableControls = (action === "edit") && (/*любые другие условия*/); this.enableDetailControls(viewConfig, enableControls); return viewConfig; };
Очень желательно до этого момента уже получить значения необходимых условий, так как после выполнения getCustomItemView управление передаётся в модуль базовой детали (DetailModule), в котором уже выполняется привязка модели к представлению и рендеринг детали.
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать