加载不正确的商店

时间:2012-08-01 07:44:26

标签: extjs extjs4 extjs4.1

Ext.WIndow上有2个按钮。当我单击按钮1时,将执行以下代码。

当我点击按钮2时,第二组代码被执行。这两个按钮都将从Store

加载

问题;

当我点击第一个按钮时,会打印以下console.log个语句(这是我预期的方式)

console.log ('win 1');
console.log('Came win 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'));
}

1 个答案:

答案 0 :(得分:1)

我认为您的大多数问题仅仅是因为您多次订阅load事件。基本上当你执行Button2代码时 - store甚至会为load提供两个处理程序,它们将同时运行。

通常当您订阅要添加load选项的{ single: true }事件时,处理程序将被调用一次并将从商店中删除。

store.on('load', 
   function() {...},  
   scope /* this or something like it... */,
   { single: true }
);