2013-11-28 76 views
0

我能夠在使用以下函數呈現前後遮罩()然後取消遮罩()圖表:chart.mask() then chart.unmask()Extjs mask()與消息

但我想添加一個加載消息,當它被屏蔽時,我該怎麼做?我使用MVC的Extjs 4.1。

回答

1

Ext.Component(圖表繼承)和Ext.dom.Element都有mask方法。但Ext.dom.Elementone接受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'); 
} 

取消屏蔽與此類似。檢查元素是否仍然存在將更加重要,因爲在加載完成之前組件已被銷燬(例如窗口或製表符關閉)的機會甚至更大。