Изменение данных при загрузке в модели
Есть код:
Ext.define('Pkasko.model.Models', { extend: 'Ext.data.Model', fields: ['model_id', 'id', 'text', 'power', 'weight', 'price'], proxy: { type: 'ajax', url: '/ajax/getModels.php', reader: { type: 'json', root: '' }, afterRequest: function(req, res) { Ext.Array.each(req.operation.response, function(val, index, selflink) { var json = Ext.decode(val.responseText); var result = ''; Ext.Object.each(json, function(ind2, val2, selflink2) { var ind = ind2; Ext.Object.each(val2, function(val3, val3, selflink3) { if(ind != '') { result += '[model_id: "' + ind + '", id: "' + val3.id + '", text: "' + val3.text + '", power: "' + val3.power + '", weight:"' + val3.weight + '", price: "' + val3.price + '"],'; } }); }); this.responseText = result.substring(0, result.length - 1); console.log(this); }); } } }); В методе afterRequest я привожу данные к пригодному для extjs вида (итоговая переменная results), можно ли передать эту переменную модели? :-? |
Если я правильно Вас понял Ext.data.Model.load()?
P.S. Только у Вас: result += '[...' + ... + '...],'; Замените на { }, раз уж reader: { type: 'json'... Ну, и значения уже незачем, ессесно акромя string'ов, в " " заворачивать... |
Спасибо за ответ, Ex!
Алгоритм такой: 1) получаю ajax с результатами запроса 2) привожу результаты запроса в нормальный вид 3) подставляю в модель Я совсем недавно с extjs, поэтому если приведете примерчик - буду благодарен |
А зачем столько телодвижений? Handler Ваш? Можете сразу отдать данные в нужном формате?
Цитата:
Ext.define("TestModel1", { extend: "Ext.data.Model", idProperty: "id", fields: [ { name: "id", type: "int" }, { name: "name", type: "string" } ], proxy: { type: "memory", reader: { type: "json" } } }); var r = Ext.create("TestModel1", { id: 1, name: "Record# 1" }); if(window.console && console.log) console.log("%o", r); |
Цитата:
|
/me думает: только, вот, оверквотить-то зачем?..
|
Часовой пояс GMT +3, время: 09:53. |