【发布时间】:2011-07-17 13:21:15
【问题描述】:
我有一个data.store,我们将其命名为 store1 绑定在图表中。我想从 store1 创建一个新商店(我想对 store1 进行计算,例如对一些记录求和)让我们说 store2,然后将其绑定到图表。到目前为止,对 store1 的任何更改都会反映到图表中。
我也想把它和 store2 一起保存。
我怎样才能实现这样的目标?
我是 ext 的新手,我要求更好地了解架构。
谢谢
【问题讨论】:
我有一个data.store,我们将其命名为 store1 绑定在图表中。我想从 store1 创建一个新商店(我想对 store1 进行计算,例如对一些记录求和)让我们说 store2,然后将其绑定到图表。到目前为止,对 store1 的任何更改都会反映到图表中。
我也想把它和 store2 一起保存。
我怎样才能实现这样的目标?
我是 ext 的新手,我要求更好地了解架构。
谢谢
【问题讨论】:
为 store1 创建一个监听器,在它加载后填充一个本地数组存储(带有静态数据的 ext 示例)。例如只有store1是json,第二个store2是完全派生的数据
【讨论】:
hpvc 提示为真。见example,其中“transforms”的方法可以填写store2
【讨论】:
我意识到这是一个老问题,但想为将来找到此答案的其他人提供更好的文档。
向商店添加负载侦听器时的注意事项。如果使用负载侦听器,您必须确保包含 single: true 以便它自行处理。如果您不处理侦听器,这将成为您程序中的“内存泄漏”,因为每次调用存储时都会添加另一个侦听器,从而增加负载侦听器将触发的项目数并增加使用的内存量。
处理此问题的一种更简洁的方法是在加载事件上使用回调
store.getProxy().extraParams = {
WI: Ext.getCmp('transferManagerMain').MenuID,
UID: Ext.getCmp('transferManagerMain').UID,
companykey: obj.$widgetRecord.data.CompanyKey,
transferid: obj.$widgetRecord.data.TransferID
};
store.load({
callback: function (records, operation, success) {
var Tier2PayrollWdw = Ext.create('object');
var responseJson = JSON.parse(operation.getResponse().responseText);
var warnlinArr = responseJson.warnlines;
Ext.fireEvent('setDataViewErrWarnLineArr', warnlinArr);
Tier2PayrollWdw.setWidth(Ext.getBody().getViewSize().width - 300);
Tier2PayrollWdw.setHeight(Ext.getBody().getViewSize().height - 300);
Tier2PayrollWdw.setTitle('Data View - ' +
obj.$widgetRecord.get('OriginalFileName') + ' Transfer Date: ' +
Ext.util.Format.date(obj.$widgetRecord.get('TransferTime'), 'm/d/Y'));
Tier2PayrollWdw.show();
}
});
回调不会继续添加监听器。
【讨论】: