Как переиспользовать store в MVC приложении без множественной перезагрузки?
Добрый день.
Пишу MVC приложение на extjs4.
В отличие от примеров на сайте sencha, у меня ситуация, когда один Store используется несколько раз (например на одном табе в комбобоксе, на другом в гриде).
Application запускает Viewport, в котором содержится tabpanel.
У каждого таба свой контроллер и множество вью.
Моя проблема: Store загружается множество раз — при каждом упоминании в контроллере.
Store сконфигурировано с autoload: true.
Proxy сконфигурировано в Model.
Если убираю Store из массива [stores] контроллера таба -комбобокс будет пустым, хотя в нем указано store:Ext.getStore('STORE-ID')
Подскажите, в каком направлении копать, или пример с переиспользованием Store а не Model
посмотри через Developer Tools загружается ли store реально?
в самом store файле попробуй пропиши storeId:'store-id', а в гриде и комбобоксе просто store:'store-id'
«Proxy сконфигурировано в Model.» — не очень понятно. Store должна ссылаться на model, а не proxy.
Вообще если есть где глянуть код, то скинь.
1. Удаляем из boot.js store вообще, мы их подключим в Main контроллере
2. В store/DataType.js добавляем storeId:'DataType'
3. Везде где хотим подключить store пишем store: 'DataType'
>Если убираю Store из массива [stores] контроллера таба -комбобокс будет пустым, хотя в нем указано
>store:Ext.getStore('STORE-ID')
Пройдитесь дебаггером по коду, возможно в том месте где вы юзаете getStore('.....') он еще не инициализирован и к нему невзможно обратится по названию.
а по поводу вопроса: «Как переиспользовать store» ну я использую grid.reconfigure(store,columns) — если меняются колонки в гриде и потом просто принудительный store.load