Получение данных с условием
Всем доброго времени суток!:victory:
Почти готов мой графический компонент на ExtJs :) Но вопрос еще есть. Данные получаю в виде json с помощью ajax обращения к файлу *.php. Ext.define('BlackFrog', { extend: 'Ext.data.Model', fields: ['name', 'data1'] }); var store = Ext.create('Ext.data.JsonStore', { model: 'BlackFrog', proxy: { type: 'ajax', url: './resources/getData2.php', reader: { type: 'json', root: 'contents' } } }); store.load(); Есть необходимость при вызове "getData2.php", передать ему параметры для запроса. Не понял, существует ли в ExtJs удобный способ передачи этих параметров. Пока вижу такой выход: организовать на JS XMLHttpRequest и через request грузить данные в store. |
store.getProxy().extraParams = {...}; store.load(); или store.load({ params: {...} }); В 1-м случае параметры сохраняются в proxy, во 2-м параметры единовременные. |
Нашел вроде подходящую статью: http://codeunit.ru/working-with-ajax-in-extjs-4
Почитаю, позже отпишусь :) |
nekto_O,
Огромное, Вам, спасибо! :) |
nekto_O,
Хотел бы задать еще один вопрос. Вернуть данные в ExtJS можно и через "Ext.Ajax.request", и с использованием Proxy(как в моем примере). Из мануала ExtJS не совсем понятно, для меня, в чем принципиальная разница этих способов? Внесите пожалуйста немного ясности в этот вопрос.:) P.S. Но в мануале ExtJs есть утешающая надпись "Usually developers will not need to create or interact with proxies directly.":) |
wUI,
Бывают случаи когда необходимо получить данные прямым запросом (не загружая в хранилище и не привязывая их к определенному объекту), тоесть, не зная заранее где придется использовать в дальнейшем. За всех не говорю, но лично мне в таких случаях удобнее использовать прямые запросы (Ext.Ajax.request()). В случаях когда я уверен что данные нужно будет использовать в совокупности (загружая форму, комбобокс, грид, и т.д.), то проще воспользоваться имеющимися у этих объектов методами (в Вашем случае load у хранилища, proxy лишь указывает источник данных для хранилища и как читать респонс). А принципиальной разницы я думаю нет, так как в обоих случаях используется XHR в качестве транспорта данных. |
nekto_O,
Понятно и подробно:) Душевно благодарю! |
Часовой пояс GMT +3, время: 19:29. |