На странице карточки эксперимента есть несколько справочников. После сохранения выбранных значений справочников я хочу при последующих открытиях карточки показать кнопку.
Логика Terrasoft.controls.mixins.Bindable.callModelMethod вызывает привязанный метод ExperimentVisibility к элементу страницы из раздела diff в параметре bindTo
{ "operation": "merge", "name": "ConsumptionDetailcc99e44c", "values": { "visible": { "bindTo": "ExperimentVisibility" } } },
Метод ExperimentVisibility проверяет установлено ли значение в схеме объекта страницы. На момент когда Bindable.callModelMethod вызывается, данные схемы объекта страницы еще не загружены логикой. Значение которое проверяется методом = undefined.
Каким способом возможно мне проверить значение из схемы?
По мере загрузки страницы, мое значение в данных схемы появляется, кнопка на странице генерируется раньше этого и поэтому она не видима.
Нравится
Можно создать на странице атрибут логического типа, присвоить ему значение false, а видимость компонента привязать к нему.
А когда нужно изменить видимость, в своей логике вызывать функцию, которая меняет значение атрибута. Пример можно увидеть в схеме SocialMessageHistoryItemPageV2, где:
"CommentsVisible": { "dataValueType": this.Terrasoft.DataValueType.BOOLEAN, "type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN, "value": false }, ... /** * Toggle comments block visibility and load first portion of comments if it is visible and empty. * @protected */ toggleCommentsVisibility: function() { if (this.get("CommentCount") < 1) { return; } var newVisibilityState = !this.get("CommentsVisible"); this.set("CommentsVisible", newVisibilityState); if (newVisibilityState && this.get("ShownCommentMessagesCount") === 0) { this.onLoadNextComment(); } }, ... { "operation": "insert", "name": "ESNCommentsContainer", "parentName": "HistoryV2MessageFooterContainer", "propertyName": "items", "values": { "itemType": this.Terrasoft.ViewItemType.CONTAINER, "wrapClass": ["esn-comments-container"], "visible": {"bindTo": "CommentsVisible"}, "items": [] }, "index": 1 },