Я могу маскировать(), а затем размаскировать() диаграмму до и после ее отображения с помощью: chart.mask()
, затем chart.unmask()
.
Но я хочу добавить сообщение о загрузке, пока оно скрыто, как мне это сделать? Я использую Extjs 4.1 с MVC.
Я могу маскировать(), а затем размаскировать() диаграмму до и после ее отображения с помощью: chart.mask()
, затем chart.unmask()
.
Но я хочу добавить сообщение о загрузке, пока оно скрыто, как мне это сделать? Я использую Extjs 4.1 с MVC.
Ext.Component
(от которого наследует диаграмма) и Ext.dom.Element
имеют метод mask
. Но Ext.dom.Element
один принимает аргумент msg
.
Это означает, что вы можете достичь того, чего хотите, с помощью такого кода:
chart.el.mask('My message');
Теперь есть еще пара вещей, которые нужно принять во внимание.
Наиболее важно убедиться, что элемент определен до вызова его метода mask
. По сути, из-за возможных задержек загрузки или отсрочки рендеринга может случиться так, что некоторые события или методы будут вызываться для компонентов, которые были уничтожены или еще не визуализированы.
Во-вторых, с этим методом у вас не будет загружаемого класса CSS по умолчанию. Вы можете передать его в качестве второго аргумента mask
, если хотите; класс 'x-mask-loading'
.
При всем при этом код должен выглядеть примерно так:
var maskEl = chart.getMaskTarget() // this one's marked as private... maybe we shouldn't use it
|| chart.getEl();
if (maskEl) {
maskEl.mask("Loading...", Ext.baseCSSPrefix + 'mask-loading');
}
Аналогично разоблачить. Проверка того, что элемент все еще существует, будет еще более важной там, потому что вероятность того, что компонент был уничтожен (например, окно или вкладка закрыта) до того, как загрузка будет выполнена, еще выше.