На странице карточки эксперимента есть несколько справочников. После сохранения выбранных значений справочников я хочу при последующих открытиях карточки показать кнопку.
Логика 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
},