3

在 Extjs 4.2 中,我对整个页面使用了 Load Mask

在一个通用的实用程序类中:

loadMask: null,
showLoading : function() {
    if (!this.loadMask) {
      this.loadMask = new Ext.LoadMask(Ext.getBody(), { msg: "Loading..." });
    }
    this.loadMask.show();
  },

  clearLoading:function() {
    this.loadMask.hide();
  },

我在加载/保存期间在所有页面中调用此方法(等待服务器端响应),但在 Extjs 5.0 中,它不起作用,我收到以下错误消息:

Uncaught TypeError: Cannot call method 'mask' of undefined all-classes.js:1
Ext.define.show all-classes.js:1
Ext.define.loadingProcess all-classes.js:1
Ext.define.listeners.beforeload all-classes.js:1
Ext.define.doFire all-classes.js:1
Ext.define.fire all-classes.js:1
Ext.define.doDispatchEvent all-classes.js:1
Ext.define.dispatchEvent all-classes.js:1
Ext.define.doFireEvent all-classes.js:1
a.doFireEvent all-classes.js:1
Ext.define.fireEvent all-classes.js:1
Ext.define.load
4

1 回答 1

11

知道了 !!!它在 Extjs 5.0 中进行了更改,Ext.getBody() 返回 Ext.dom.Element 并且对于 Element 使用 mask() 和 unmask(),所以它应该是

  //mask
 Ext.getBody().mask("Loading...");

//unmask
 Ext.getBody().unmask();
于 2014-06-20T16:59:17.190 回答