Изменение данных при загрузке в модели
Есть код:
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, время: 23:06. |