所以我有這個函數onDisplayError這是每次調用如果請求失敗。這意味着如果用戶按保存按鈕和3請求失敗,我目前得到3彈出消息。我的目標是這個函數檢查我的彈出窗口是否已經打開。如果是的話,我會在我的已經打開的窗口中追加的錯誤,否則就應該打開這個錯誤彈出只打開一個彈出窗口(面板)
onDisplayError: function (response, message) {
var errorPanel = Ext.create('myApp.view.popup.error.Panel',{
shortMessage: message,
trace: response
});
if(errorPanel.rendered == true){
console.log('Do some other stuff');
}else{
errorPanel.show();
}
},
這是Panel.js
Ext.define('myApp.view.popup.error.Panel', {
extend: 'Ext.panel.Panel',
requires: [
'myApp.view.popup.error.PanelController'
],
controller: 'myApp_view_popup_error_PanelController',
title: 'Fail',
glyph: '[email protected]',
floating: true,
draggable: true,
modal: true,
closable: true,
buttonAlign: 'center',
layout: 'border',
shortMessage: false,
width: 800,
height: 200,
initComponent: function() {
this.items = [
this.getMessagePanel(),
this.getDetailsPanel()
];
this.callParent(arguments);
},
getMessagePanel: function() {
if(!this.messagePanel) {
var message = this.shortMessage;
this.messagePanel = Ext.create('Ext.panel.Panel', {
bodyPadding: 5,
height: 200,
region: 'center',
border: false,
html: message
});
}
return this.messagePanel;
},
getDetailsPanel: function() {
if(!this.detailsPanel) {
this.detailsPanel = Ext.create('Ext.panel.Panel', {
title: 'Details',
hidden: true,
region: 'south',
scrollable: true,
bodyPadding: 5,
height: 400,
html: '<pre>' + JSON.stringify(this.trace, null, 4) + '</pre>'
});
}
return this.detailsPanel;
}
的問題是,我仍然獲得多個彈出窗口顯示。我認爲問題在於var errorPanel失去了引用,所以無法檢查這個彈出(面板)是否已經打開。如何達到預期效果?我正在使用extjs 6.如果您需要任何其他信息,請讓我知道,我會提供。
太棒了!謝謝! –