2014-03-06 127 views
0

我正在開發sapui5應用程序。我想在ajax請求期間阻止UI表單用戶。我添加以下代碼:對話框不顯示

var dialog = new sap.m.BusyDialog({ 
     text : this.languageModel.getModelProperty("BUSY_DIALOG_FETCHING_DATA"), 
     title : this.languageModel.getModelProperty("BUSY_DIALOG_WAIT") 
    }); 
    var that = this; 
    jQuery.ajaxSetup({ 
     beforeSend : function() { 
      console.log("open"); 
      dialog = (dialog) ? dialog : new sap.m.BusyDialog({ 
       text : that.languageModel.getModelProperty("BUSY_DIALOG_FETCHING_DATA"), 
       title : that.languageModel.getModelProperty("BUSY_DIALOG_WAIT") 
      }); 
      dialog.open(); 
     }, 
     complete : function() { 
      console.log("close"); 
      dialog.close(); 
     } 
    }); 

在控制檯我取得好成績,並在調試時我可以看到對話,但在正常模式(沒有任何斷點)對話框不會出現在所有。任何線索?

+1

你爲什麼這樣做:'(dialog)?對話框:新的sap.m.BusyDialog({'當你實際上剛剛定義對話框時? –

+0

dialog.open(this); ??? –

回答

1

爲什麼不使用忙指標?

var oController = this; 
oController.getView().setBusy(true); 
$.ajax({ 
    //your ajax call here, 
    success: function(data) { 
     //do whatever needs to be done after success; 
     oController.getView().setBusy(false); 
    }, 
    error: function(...) { 
     oController.getView().setBusy(false); 
    } 
});