Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Синхронная загрузка Ext.data.Store


Автор: Paher 4.9.2012, 16:32
Доброго времени суток, уважаемые!

Проблема у меня такая: есть у меня Ext.data.Store. Когда я ее использую в Grid или Combobox(свойство store), все работает, как надо, данные в этих элементах отображаются. Теперь же эту ds я хочу использовать для заполнения текстового поля. проблема в том, что программа не дожидается, пока данные в Store загрузятся, а работает дальше, что ,естественно, вызывает ошибку. Как я понимаю, в Grid и Combobox есть какие-то механизмы, которые позволяют сначала дождаться загрузки данных, и только потом с ними работать. Не знает ли кто таких механизмов для работы со Store напрямую?

Автор: skyboy 4.9.2012, 21:46
Цитата(Paher @  4.9.2012,  15:32 Найти цитируемый пост)
 Как я понимаю, в Grid и Combobox есть какие-то механизмы, которые позволяют сначала дождаться загрузки данных, и только потом с ними работать

ага. подписываются на событие load
Цитата(Paher @  4.9.2012,  15:32 Найти цитируемый пост)
Не знает ли кто таких механизмов для работы со Store напрямую? 

в смысле? события и getAt? так в доке ж есть…

Автор: Paher 5.9.2012, 11:13
getAt и события я уже нашел, проблема в том чтобы вызвать getAt после события. Т.е. теоретически знаю, как сделать, практически не могу. Попробую объяснить подробнее. У меня есть таблица. При клике на какую-нибудь строку открывается окно с дополнительными данными. Дополнительные данные загружаются через Store. Мне надо сделать так, чтобы окно визуализировалось только после загрузки Store. Другими словами получается, что функция визуализации является обработчиком комбинированного события (клик на строке таблицы плюс загрузка Store). Собственно, вопрос, как реализовать это комбинированное событие? Возможно, решение простое, но я его не вижу

Автор: skyboy 5.9.2012, 16:58
клик по таблицы вызывает метод load у store. до этого на store вешается обработчик события load, который покажет окно. окно при отображении тянет данные из стора, которые уже должны быть загружены.

Автор: Paher 7.9.2012, 22:09
В окне должна отображаться инфа и из выбранной строки таблицы и из STORE. И я не могу найти способ передать данные выбранной строки в обработчик on.load для STRORE для отображения

Автор: skyboy 7.9.2012, 23:43
событие выбора строки уходит в контроллер
контроллер инициализирует стор и устанавливает обработчик: когда стор загружается, чтоб показалось окно. в том же куске кода через замыкание можно передать в код создания окна инфо о выбранной строке.

Автор: Paher 9.9.2012, 20:46
я могу ошибаться, плохо знаю ExtJS, но, по-моему, контролеры появились только в 4 версии. Я же работаю с древней версией 2. В любом случае, отказался от возможностей extjs в данном вопросе, использовал обычный синхронный XMLHttpRequest и получил то, что хотел. Спасибо за помощь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)