在执行一段代码之前必须加载两个ExtJS Stores

时间:2012-03-01 12:34:43

标签: javascript extjs3

我有2个商店,一个包含权限,另一个包含要在网格中显示的数据。但是我的文件中有一段代码只有在加载这两个商店后才能执行。目前在我的代码中没有这个条件检查,不能保证在执行关键代码之前加载存储

2 个答案:

答案 0 :(得分:1)

为什么不直接听两个商店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

答案 1 :(得分:0)

使用Extjs,我想你将不得不使用回调方法。

ExtJs商店附带了加载回调方法。您可以先加载一个商店,一旦加载,然后开始另一个商店的加载,最后您将能够知道两个商店都已加载。