我在面板上添加了一个按钮。单击该按钮时,将显示一个弹出窗口。我尝试使用setHandler更新弹出窗口的内容。但是每当调用setHandler时,处理程序函数都会立即执行。以下是示例代码:
me.panels[i].getDockedItems()[0].setHandler(Popup({html: tiphtml}), this);
...
Popup = function(cfg) {
cfg = Ext.apply({
height: 100,
width: 200,
layout: 'fit'
}, cfg);
Ext.create('Ext.window.Window', {
title: cfg.title,
height: cfg.height,
width: cfg.width,
layout: cfg.layout,
html: cfg.html
}).show();
}
答案 0 :(得分:2)
您需要将函数嵌套在匿名函数中。您实际上是在代码中调用函数,而不是传递它。这将有效:
me.panels[i].getDockedItems()[0].setHandler(function(){Popup({html: tiphtml})}, this);
...
Popup = function(cfg) {
cfg = Ext.apply({
height: 100,
width: 200,
layout: 'fit'
}, cfg);
Ext.create('Ext.window.Window', {
title: cfg.title,
height: cfg.height,
width: cfg.width,
layout: cfg.layout,
html: cfg.html
}).show();
}