我正在尝试在更改tabsPanels(Ext.tab.Panel)上加载商店,每个选项卡都是一个不同的ViewModel,并且每个选项卡都有一个包装器,其中包含一个全局的商店,每个商店都有一个过滤器,如这样:
方式的设计是显示页面:
1)是视图模型,它有对包装器的引用,它是一个Ext.form.FieldSet
2)商店是否定位,也有参考,这是一个Ext.panel.Panel
使用此代码,我设法轻松获得商店,但仅在我第二次进入选项卡时:
var vm = this.getView().lookupReference('commentwrapper').lookupReference('commentsList’).getViewModel();
console.log(vm);
console.log(vm.getStore('userTimeline'));
当我更改标签时需要更新并过滤新数据时出现问题。我在每个ViewModel的控制器上使用此代码: PHP代码:
control: {
'#': {
activate: ‘functiontobe loaded’,
}
}
我的问题是我第一次尝试渲染我第二次无法获取商店内部的数据。
答案 0 :(得分:0)
您可以尝试使用tabpanel或标签项的后续监听器...
listeners: {
afterrender: function(el) {
// Now you can load any store you want
el.getStore().load();
// Or call some function after Tab will be activated
el.on('activate', someFunction);
// Or wait for store of any of your TabPanel Items will be loaded
el.getStore().on('load', function() {
//some actions
});
// Also you can wait for any store load after your tab panel will be rendered
Ext.getStore('App.store.Name').on('load', function(store) {
// some actions on store load
});
}
}