如何在 ExtJS 中单击按钮打开模式
How to open a modal on button click in ExtJS
我第一次尝试使用下面的代码工作正常,但是当我关闭弹出窗口并再次单击按钮时它停止工作。
var myForm = new Ext.form.Panel({
width: 500,
height: 400,
title: 'Foo',
floating: true,
closable : true
});
//myForm.show();
Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
listeners: {
click: function() {
myForm.show();
}
}
});
您可以将以下内容添加到您的面板。关闭后会隐藏它
closeAction: 'hide'
如果你正在构建一个大屏幕,虽然你最好保持原样(它保持 dom 整洁)但是当你再次点击按钮时你需要重新创建组件
因为默认情况下 closeAction 等于 'destroy',这意味着组件将在单击关闭按钮时被销毁。销毁 myForm
对象后,第二次尝试将无法使用它。
解决方案:
1) 您可以将 closeAction
更改为 'hide',然后单击关闭按钮组件将隐藏在 dom.
中
var myForm = new Ext.form.Panel({
width: 500,
height: 400,
title: 'Foo',
floating: true,
closable: true,
closeAction: 'hide'//<-------------
});
2) 您可以在每次单击按钮时创建新对象。
Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
listeners: {
click: function () {
new Ext.form.Panel({
width: 500,
height: 400,
title: 'Foo',
floating: true,
closable: true
}).show();
}
}
});
我第一次尝试使用下面的代码工作正常,但是当我关闭弹出窗口并再次单击按钮时它停止工作。
var myForm = new Ext.form.Panel({
width: 500,
height: 400,
title: 'Foo',
floating: true,
closable : true
});
//myForm.show();
Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
listeners: {
click: function() {
myForm.show();
}
}
});
您可以将以下内容添加到您的面板。关闭后会隐藏它
closeAction: 'hide'
如果你正在构建一个大屏幕,虽然你最好保持原样(它保持 dom 整洁)但是当你再次点击按钮时你需要重新创建组件
因为默认情况下 closeAction 等于 'destroy',这意味着组件将在单击关闭按钮时被销毁。销毁 myForm
对象后,第二次尝试将无法使用它。
解决方案:
1) 您可以将 closeAction
更改为 'hide',然后单击关闭按钮组件将隐藏在 dom.
var myForm = new Ext.form.Panel({
width: 500,
height: 400,
title: 'Foo',
floating: true,
closable: true,
closeAction: 'hide'//<-------------
});
2) 您可以在每次单击按钮时创建新对象。
Ext.create('Ext.Button', {
text: 'Click Me',
renderTo: Ext.getBody(),
listeners: {
click: function () {
new Ext.form.Panel({
width: 500,
height: 400,
title: 'Foo',
floating: true,
closable: true
}).show();
}
}
});