Как установить индикатор занятости (false) SAPUI5 для всех элементов управления одновременно

мы хотим позаботиться о том, чтобы все запущенные индикаторы занятости были остановлены через пару раз. Как мы можем сделать это? На данный момент мы используем setBusy(false) для каждого элемента управления. Большое спасибо!


person user2405095    schedule 15.01.2019    source источник


Ответы (1)


Я думаю, что вы должны изменить свой общий подход, потому что это не очень хороший шаблон UI/UX.

Во-первых, почему у вас в представлении более одного элемента управления «занято»? Например, если вы загружаете запись в список, вы просто устанавливаете занятый список, а не всю страницу. Если вы отправляете данные формы, вы устанавливаете занятую только форму, а не все остальное.

Во-вторых, почему вы говорите: «На данный момент мы используем setBusy(false) для каждого элемента управления»? Вы должны удалить состояние занятости после определенного события. Например, когда вы закончили загрузку результатов списка или получили результат отправки формы.

В любом случае, чтобы решить вашу текущую проблему, лучше всего использовать привязку XML с временной моделью JSON.

У вас может быть модель JSON с таким содержимым:

{
    busy: false
}

и вы привязываете свойство busy элемента управления к youtJSONModel>/busy в этот момент, когда вам нужно установить элемент управления в состояние занятости, вы можете сделать this.getView().getModel("youtJSONModel").setProperty("/busy", true); и когда вы закончите операцию, вы можете сделать this.getView().getModel("youtJSONModel").setProperty("/busy", false);

person StErMi    schedule 15.01.2019
comment
У нас действительно много просмотров, и для каждого просмотра (управление страницей) обычно есть один индикатор занятости, который будет обрабатываться после каждого процесса загрузки. Но иногда бывают ситуации, когда процесс загрузки отложен или ошибка не была извлечена, как ожидалось. Только для такой ситуации я хотел бы знать, что есть способ установить все индикаторы в false. - person user2405095; 16.01.2019
comment
Попался, мой ответ в любом случае решает вашу проблему. Вам нужно привязать состояние занятости представления к значению модели и изменить его (как я объяснил в ответе выше) при необходимости. - person StErMi; 16.01.2019