2016-11-21 5 views
0

У меня возникает странная ситуация при получении некоторых данных из моего хранилища данных. Пользователь может совершить прогулку с моим приложением и сохранить этот маршрут. Он может сохранять несколько маршрутов, если захочет.Странная ситуация при получении данных из sencha datastore

я сохранить COORDS в COORDS магазине и я получить их, как это:

var coordsStore = Ext.getStore("CoordsStore"); 

первый я проверить, если мой магазин имеет несколько записей:

if(coordsStore.getCount() > 0) 

Когда правда я буду петли их через и проверить маршрут

for(var i = 0; i < coordsStore.getCount(); i++){ 

     var model = coordsStore.getData().getAt(i);  
     var routeModel = model.get("route"); 
    } 

При первом запуске это происходит, как предполагается, ns все записи с маршрутом 0.

при переходе на второй прогон (в этом случае маршрут 1 в этом случае), хранилище скинов возвращает странные значения. Вместо того, чтобы ожидать также кодов маршрута 0 и кодов 1-го маршрута, мы возвращаем только маршруты 1-го уровня.

Что получает мое внимание, когда смотрит на coordsStore.getData().getAt(i);

data.All содержит:

enter image description here

в data.items содержит:

enter image description here

вы видите, что значение маршрута отличается, при использовании getAt каким-то образом он использует стоимость es из data.items, а не из data.all.

Любые идеи, как я могу получить данные из data.all?

+0

я обычно получаю количество элементов в магазине как это: 'coordsStore.count()' – AhmadWabbi

+0

Ьгу store.sync () перед проверкой vals –

+0

@ Mr.George Пробовал, не работал. Любые другие предложения? –

ответ

2

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

coordsStore.reload(function(records){ //callback whit records 
    records.forEach(function(record,index){ 
     //you code 
    }); 
}); 

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

забудьте вызвать store.sync(), чтобы сохранить изменения в вашем магазине, когда

необходимости модифицировать
+0

Привет Mr.George, я получил его, работая при его использовании следующим образом: 'coordsStore.data.all [i]'. Но я попробую ответить, скоро вернется! –

+0

С моим кодом вы всегда будете иметь новые загруженные записи в магазине, удачи! @ Red90 –

+1

Привет! ваше решение работает :) Спасибо! Ps. это btw load не перезагружается :) –

Смежные вопросы