Ext.define('js.custom.filterbar',{
extend: 'Ext.Component',
alias: 'widget.FilterBar',
onRender: function(){
alert("in onrender filterbar");
var me =this;
me.callParent(arguments);
me.el.load({
url: '/TRIFOLD/jsp/filterBar.jsp',
failure: function (response) {
alert("fail");
},
success: function(response){
Ext.Function.defer(me.addStoreListeners, 50);
}
});
},
addStoreListeners : function(){
Ext.get('store').on({
change: function(){
alert("change");
var floorplanObj = Ext.create('js.custom.floorplan');
floorplanObj.getRequestParameters();
}
});
}
});在上面的代码中,el.load的成功触发了两次,因此我的侦听器也绑定了两次。因此,一旦组合框发生变化,警报("change")就会出现两次。请告诉我哪里做错了。
发布于 2012-04-26 04:17:50
我也遇到了同样的问题--虽然我没有可以应用于Ext类的补丁类型的解决方案,但我有一个适用于我的(hacky)解决方案(ExtJS 4.0.7,顺便说一下)
Ext.get('someEl').load({
url: '/some/content.php',
success: function (resultOrEvent){
if(resultOrEvent.hasOwnProperty('request'))
{
// Do your post-load stuff here
}
}
});我不知道为什么它会触发两次,但它已经很烦人了。我在控制台中看到的'resultOrEvent‘只是--第一次得到预期的请求对象,第二次得到Ext.ElementLoader类型的对象
我正在寻找解决这个问题的方法(如果有问题),如果我找到了,我一定会回复的。
https://stackoverflow.com/questions/6032716
复制相似问题