Два ExtJS-хранилища должны быть загружены перед выполнением фрагмента кода - PullRequest
1 голос
/ 01 марта 2012

У меня есть 2 магазина, один содержит разрешения, а другой содержит данные для отображения в сетке.Но в моем файле есть фрагмент кода, который должен выполняться только после загрузки этих двух хранилищ.В настоящее время в моем коде без проверки этого условия нет никакой гарантии, что хранилища загружены до выполнения критической части кода

Ответы [ 2 ]

1 голос
/ 03 марта 2012

Почему бы вам просто не прослушать оба магазина load событие? Когда вы загружаете магазин, вы устанавливаете его флаг. Когда оба флага переключены, вы вызываете свой критический код.

{

   firstLoaded: false,
   secondLoaded: false,

   initComponent: function(){
      ...
      firstStore.on('load', function(){ this.firstLoaded=true; this.check(); }, this);
      secondStore.on('load', function(){ this.secondLoaded=true; this.check(); }, this);
      ...
   },

   check: function(){
      if (this.firstLoaded && this.secondLoaded) {
         this.initializeLSEngine();
      }
   },

   initializeLSEngine: function(){
      ...
   }

}

В конце концов добавьте {single:true} к обоим .on, если необходимо.

0 голосов
/ 01 марта 2012

Используя Extjs, я думаю, вам придется использовать метод обратного вызова.

В хранилище ExtJs входит метод обратного вызова load.Сначала вы можете загрузить один магазин, как только он будет загружен, а затем начать загрузку другого магазина, и, наконец, вы сможете узнать, что оба магазина загружены.

...