ExtJS 6. 在第二个存储构造函数中使用来自第一个存储的数据
ExtJS 6. Use data from 1st store in 2nd store constructor
有 2 家商店。我需要来自第二个商店构造函数中的第一个商店的数据。怎么做到的?
这会很容易,但没用。
要实现您想要的效果,您必须从 store1 的 load() 事件创建 store2,并且您不能在所述加载事件之前将商店绑定到任何组件。
Ext.define('MyApp.store.Store1',{
...
listeners:{
load:function(store, records) {
var store2 = Ext.getStore("store2") || Ext.create('MyApp.store.Store2',{
store1data: records
});
Ext.getCmp("someCombobox").bindStore(store2); // you would have to use ext-empty-store on the combobox before, or else it may trigger store creation too early
}
但这不是好的编程风格,也没有任何实际用途。通常,每当 store1 获取新数据时,您都希望再次为 store2 调用一些函数。在商店建设期间,您几乎不需要做任何事后无法使用 reconfigure
或其他商店方法完成的事情。 (值得注意的例外:您必须在构造期间决定它是数组存储还是 json 存储或树存储)。
例如,您可以在 store2 上定义一个方法,并在 store1 重新加载后立即调用该方法:
store2.someFunction = function(store1Records) {
var store2 = this;
Ext.each(store1Records,function(record) {
store2.getProxy().setExtraParam(record.get("paramName"),record.get("paramValue"));
});
store2.load();
}
store1.on('load',function(store, records) {
store2.someFunction(records);
});
有 2 家商店。我需要来自第二个商店构造函数中的第一个商店的数据。怎么做到的?
这会很容易,但没用。
要实现您想要的效果,您必须从 store1 的 load() 事件创建 store2,并且您不能在所述加载事件之前将商店绑定到任何组件。
Ext.define('MyApp.store.Store1',{
...
listeners:{
load:function(store, records) {
var store2 = Ext.getStore("store2") || Ext.create('MyApp.store.Store2',{
store1data: records
});
Ext.getCmp("someCombobox").bindStore(store2); // you would have to use ext-empty-store on the combobox before, or else it may trigger store creation too early
}
但这不是好的编程风格,也没有任何实际用途。通常,每当 store1 获取新数据时,您都希望再次为 store2 调用一些函数。在商店建设期间,您几乎不需要做任何事后无法使用 reconfigure
或其他商店方法完成的事情。 (值得注意的例外:您必须在构造期间决定它是数组存储还是 json 存储或树存储)。
例如,您可以在 store2 上定义一个方法,并在 store1 重新加载后立即调用该方法:
store2.someFunction = function(store1Records) {
var store2 = this;
Ext.each(store1Records,function(record) {
store2.getProxy().setExtraParam(record.get("paramName"),record.get("paramValue"));
});
store2.load();
}
store1.on('load',function(store, records) {
store2.someFunction(records);
});