Extjs пропускает загрузку магазина условно - PullRequest
0 голосов
/ 16 февраля 2011

Этот вопрос связан с другим вопросом:
EXTjs gridfilter: Как очистить фильтр без перезагрузки магазина?

Я думаю:

Если есть 1 хранилище и есть две функции (f1) и (f2), и обе они вызывают store.load().

Будут вызваны и f1, и f2, и заказ не гарантируется. Есть ли способ для f1 проверить, было ли хранилище уже загружено f2 (и наоборот), и если загружено, пропустить команду store.load для f1.

Я ищу такой метод, как:

 f1() {
     if (!store.isLoadedAsPartOfThisRequest() //true/false){
         store.load(params);
     }
 }

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 13 июля 2012

Использование store.getCount () , безусловно, является грубым решением и создает неточности, если загруженных записей нет.

Служба поддержки Sencha представила решение :

'Проверьте Store на предмет lastOptions, если он существует, то ваш Магазин загрузился хотя бы один раз.'

Похоже, что lastOptions больше не существуетчасть ExtJS 4.1.В качестве обходного пути можно включить и установить логическое значение isLoaded как часть переопределения загрузки Store.

0 голосов
/ 16 февраля 2011

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

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

Итак, в ваших f1 и f2 вы проверите булевы значения для вызова reload.В то же время вы найдете, где и когда вы снова установите логические переменные в false.

Надеюсь, это вам поможет.

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