我可以使用:chart.mask()
然后chart.unmask()
来掩盖()然后取消屏蔽()图表之前和之后的图表。
但我想在屏蔽时添加加载消息,我该怎么办呢?我正在使用Extjs 4.1和MVC。
答案 0 :(得分:1)
Ext.Component
(图表继承)和Ext.dom.Element
都有mask
方法。但Ext.dom.Element
one接受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');
}
同样取消屏蔽。检查元素是否仍然存在将更加重要,因为在加载完成之前组件被销毁的可能性(例如窗口或标签关闭)更大。