2017-02-22 110 views
1

Я пытаюсь загрузить хранилище при изменении вкладокPanels (Ext.tab.Panel), каждая вкладка представляет собой другую ViewModel, и каждая вкладка имеет оболочку, содержащую хранилище, которое является глобальным для всех что будет иметь фильтр, например:Ext Js store загружен на вкладку изменений

Дизайн кстати отображения страниц:

enter image description here

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

Вы можете попробовать использовать afterrender слушателя 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 
     }); 
    } 
} 
+0

Благодаря Кошкин я попробую его сразу, и пусть вы знаете – HDPSI

+0

я был в состоянии вызвать на активной вкладке, теперь моя проблема это первый раз, когда мы называем хранилище нулевым, только на втором, он отображает все данные на нем. – HDPSI

+0

Итак, вы должны использовать store.load() для активации прослушивателя и store.on ('load' ...) в прослушивающем прослушивании позиции табуляции. –