Как я могу отключить действия пользователя, когда отображается маска загрузки - PullRequest
1 голос
/ 19 октября 2011

Я использую ExtJS 4. Я требую, чтобы при отображении маски нагрузки щелчки пользователей игнорировались. Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 22 октября 2011

Вы можете установить маску загрузки для тела документа следующим образом ...

// показать спиннер во время всех запросов Ajax var myMask = new Ext.LoadMask (Ext.getBody (), { msg: "Пожалуйста, подождите ..." });

// Ajax loading message..
Ext.Ajax.on('beforerequest', myMask.show, myMask);
Ext.Ajax.on('requestcomplete', myMask.hide, myMask);
Ext.Ajax.on('requestexception', myMask.hide, myMask);

Итак, когда у вас есть процесс в приложении (обычно в Extjs4 все основные процессы, выполняемые вызовом Ajax), вы можете получить маску для всего тела.

Или, если это не ваше требование, вы также можете использовать следующий метод ...

setLoading (Boolean / Object / String load, Boolean targetEl): Ext.LoadMask Этот метод позволяет показать или скрыть LoadMask поверх этого компонента.

Параметры load: Boolean / Object / String Значение True, чтобы показать стандартную LoadMask, объект конфигурации, который будет передан конструктору LoadMask, или сообщение String для отображения. False, чтобы скрыть текущую LoadMask. targetEl: Boolean True для маскировки targetEl этого компонента вместо this.el. Например, если установить для этого параметра значение true на панели, будет маскироваться только тело. (по умолчанию false) Возвращает Ext.LoadMask Экземпляр LoadMask, который только что был показан.

0 голосов
/ 19 октября 2011

Вы можете проверить загрузку loadMask, используя свойство element.loadMask.loading

xtype: 'button',
handler: function() {
    this.setLoading(true);
    if (!this.loadMask.loading) {
        //click action
    }
}
...