Model view controller 在“更改”选项卡上加载Ext Js存储
我正在尝试在更改选项卡(Ext.tab.Panel)时加载一个存储。每个选项卡都是不同的ViewModel,每个选项卡都有一个包装器,其中包含一个存储,该存储对所有具有筛选器的人都是全局的,如下所示: 页面显示方式的设计是: 1) 是视图模型,如果它引用了包装器,则它是Ext.form.FieldSet 2) 是商店所在地,也有参考,是Ext.panel.panel 使用此代码,我可以轻松获得商店,但只有在第二次在选项卡上输入时:Model view controller 在“更改”选项卡上加载Ext Js存储,model-view-controller,extjs,tabs,store,Model View Controller,Extjs,Tabs,Store,我正在尝试在更改选项卡(Ext.tab.Panel)时加载一个存储。每个选项卡都是不同的ViewModel,每个选项卡都有一个包装器,其中包含一个存储,该存储对所有具有筛选器的人都是全局的,如下所示: 页面显示方式的设计是: 1) 是视图模型,如果它引用了包装器,则它是Ext.form.FieldSet 2) 是商店所在地,也有参考,是Ext.panel.panel 使用此代码,我可以轻松获得商店,但只有在第二次在选项卡上输入时: var vm = this.getView().lookupR
var vm = this.getView().lookupReference('commentwrapper').lookupReference('commentsList’).getViewModel();
console.log(vm);
console.log(vm.getStore('userTimeline'));
问题出现在我更改选项卡时,我需要更新和过滤新数据。我在每个ViewModel的控制器上使用以下代码:
PHP代码:
control: {
'#': {
activate: ‘functiontobe loaded’,
}
}
我的问题是,我第一次尝试渲染时,仅第二次无法获取存储区内的数据。您可以尝试使用tabpanel或tab item的afterrender listener
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
});
}
}
您可以尝试使用tabpanel或tab项的afterrender侦听器
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
});
}
}
感谢Koshkin,我将立即尝试,并让您知道我能够调用active the选项卡,现在我的问题是,当我们第一次调用store时,它是空的,只有在第二次调用时,它才显示其上的所有数据。因此,您应该在activate listener和store.on('load')中使用store.load()在tab项的afterrender listener中。谢谢Koshkin,我将立即尝试,并让您知道我能够调用活动的tab,现在我的问题是,当我们第一次调用存储时,它是空的,只有在第二次调用时,它才显示其上的所有数据。因此,您应该在activate listener and store.on('load')中使用store.load()在选项卡项的afterrender侦听器中。