我在状态栏中设置了一个计时器。但问题是,当我关闭窗口时,它会发现错误。如何在extjs 4中关闭窗口而没有任何错误 .........
这是我的看法。它的工作原理
var clock = Ext.create('Ext.toolbar.TextItem', { text: Ext.Date.format(new Date(), 'g:i:s A')}),
this. bbar= Ext.create('Ext.ux.StatusBar', {
id: 'win-statusbar',
topBorder:false,
text:'Status',
defaultIconCls: 'info',
defaultText: 'Status',
items: [clock]
});
this.listeners= {
render: {
fn: function(){
var task= Ext.TaskManager.start({
run: function(){
Ext.fly(clock.getEl()).update(Ext.Date.format(new Date(), 'g:i:s A'));
},
interval: 1000
});
}
}
};
doClose: function (button) {
var win = button.up('window');
win.close();
}
Ext.fly(clock.getEl()) is null
答案 0 :(得分:4)
最后我解决了。 我只需点击关闭按钮即可执行操作。
this.listeners= {
render: {
fn: function(){
var task= Ext.TaskManager.start({
run: function(){
Ext.fly(clock.getEl()).update(Ext.Date.format(new Date(), 'g:i:s A'));
},
interval: 1000
});
Ext.get('stop').on('click', function() { //by close button id= 'stop'
Ext.TaskManager.stop(task);
});
}
}
};
答案 1 :(得分:3)
这样可行。
this.listeners= {
render: {
fn: function(){
var task= Ext.TaskManager.start({
run: function(){
if(!Ext.fly(clock.getEl()))
Ext.TaskManager.stop(task);
Ext.fly(clock.getEl()).update(Ext.Date.format(new Date(), 'g:i:s A'));
},
interval: 1000
});
}
}
};