3

Extjs 4.2 では、ページ全体にロード マスクを使用していました。

一般的なユーティリティ クラスでは:

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 に答える