Extjs 正在加载不正确的存储
Extjs 正在加载不正确的存储,extjs,extjs4,extjs4.1,Extjs,Extjs4,Extjs4.1,Ext.WIndow上有两个按钮。当我单击按钮1时,将执行以下代码 当我点击按钮2时,第二组代码被执行。这两个按钮都将从存储加载 问题 当我单击第1个按钮时,将打印以下console.log语句(这是我预期的方式) 之后,当我点击第二个按钮时,我得到了不正确的控制台。显示了日志 console.log ('win 2'); console.log('Came win 1'); // Which is coming from the 1st Buttons Load function. 按钮1
Ext.WIndow
上有两个按钮。当我单击按钮1时,将执行以下代码
当我点击按钮2时,第二组代码被执行。这两个按钮都将从存储加载
问题
当我单击第1个按钮时,将打印以下console.log
语句(这是我预期的方式)
之后,当我点击第二个按钮时,我得到了不正确的控制台。显示了日志
console.log ('win 2');
console.log('Came win 1'); // Which is coming from the 1st Buttons Load function.
按钮1
var personCus= Ext.getStore('Person');
var record = personCus.getAt(0);
console.log ('win 1');
personCus.on('load', function() {
console.log('Came win 1');
var label= Ext.ComponentQuery.query('#win1> #labido')[0];
label.setText(record1.get('id'));
}
按钮2
var personCus= Ext.getStore('Person');
var record = personCus.getAt(0);
console.log ('win 2');
personCus.on('load', function() {
console.log('Came win 3');
var label= Ext.ComponentQuery.query('#win2> #labid1')[0];
label.setText(record1.get('id'));
}
我认为您的问题主要是因为您多次订阅load
事件。基本上,当您执行Button2时,代码存储区将有两个处理程序用于load
偶数,它们将同时运行这两个处理程序
通常在订阅load
事件时,您希望添加{single:true}
选项,因此处理程序将被调用一次并从存储中删除
store.on('load',
function() {...},
scope /* this or something like it... */,
{ single: true }
);
store.on('load',
function() {...},
scope /* this or something like it... */,
{ single: true }
);