2017-02-01 2 views
1

У меня есть магазин, например, 3000 записей, а мой pageSize - 250. У меня также есть уникальное значение из одной из записей (скажем product_id = 2333) , но эта запись еще не загружена, поэтому store.findRecord("product_id", product_id) вернет значение null.Extjs 4 получить индекс записи, который еще не загружен из удаленного хранилища

Мой вопрос: как мне получить индекс записи, которая еще не загружена, поэтому я могу загрузить правильную страницу после получения индекса?

ответ

0

Вы должны использовать метод OnLoad магазина:

store.on('load',function(component,records){ 
    //here all the records are loaded, so: 
    component.findRecord('prop',value)//will return your record 
    //here you can load the page you need 
},this,{single:true}); 

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

свойство single:true, переданное как опция, просто указывает, что эта функция будет выполняться один раз каждый раз, когда вы устанавливаете ее на загрузчике загрузки.

Обратите внимание, если вы опустите, что ваша загрузка в магазине будет выполнять все слушатели, которые вы добавляете к этому.

Если вы хотите идеальный способ сделать это:

view.mask('loading the page...'); 

store.on('load',function(component,records){ 
     component.findRecord('prop',value)//will return your record 
     //here you can load the page you need 
     page.load(); //simply example 
     view.unmask(); 
},this,{single:true}); 
store.load(); 

или

view.mask('loading the page...'); 

    store.load(function(records){ 
      store.findRecord('prop',value)//will return your record 
      //here you can load the page you need 
      page.load(); //simply example 
      view.unmask(); 
    }); 
Смежные вопросы