store extend
Вот такая проблема. Я хочу создать свой класс унаследовав его от store. прописываю вот так:
Ext.define("Ext.data.Store2",
{
extend: 'Ext.data.Store',
idProperty: 'id',
remoteSort: true,
proxy:
{
type: 'ajax',
actionMethods:
{
read: 'POST'
},
reader:
{
root: 'data',
totalProperty: 'totalCount'
},
simpleSortMode: true
},
sorters: [
{
property: 'id',
direction: 'ASC'
}],
constructor: function(config)
{
this.proxy.url = config.url;
Ext.data.Store2.superclass.constructor.call(this, config);
}
});
Теперь создаем 2 экземпляра класса:
var store1 = Ext.create("Ext.data.Store2",
{
pageSize: 20,
fields: ['id', 'name'],
url: 'data1.php',
autoLoad: true,
listeners:
{
load:
{
fn: function()
{
console.log(this.model.modelName);
console.log(this.data.items[0].id);
console.log(this.data.items[0].data);
}
}
}
});
var store2 = Ext.create("Ext.data.Store2",
{
pageSize: 20,
fields: ['id', 'datetime_create'],
url: 'data2.php',
autoLoad: true,
listeners:
{
load:
{
fn: function()
{
console.log(this.model.modelName);
console.log(this.data.items[0].id);
console.log(this.data.items[0].data);
}
}
}
});
после загрузки сторов в консоль выводятся данные. но выводятся не так как надо. во втором сторе поля почемуто берутся из первой. вот то что вывелось: Ext.data.Store.ImplicitModel-ext-gen1022 Ext.data.Store.ImplicitModel-ext-gen1021-1 Object {id: "1", name: ""} Ext.data.Store.ImplicitModel-ext-gen1021 Ext.data.Store.ImplicitModel-ext-gen1021-1 Object {id: "1", name: "google"} вот во втором варианте мы видим поля id, name. хотя должно быть id, datetime_create подскажите как правильно прописать класс. |
Цитата:
constructor: function(config) {
config = Ext.apply({
proxy: {
type: 'memory',
reader: 'array'
}
}, config);
this.callParent([config]);
},
|
ага, понял.. позже попробую
|
писибки. вот что получилось:
вот сам класс
Ext.define("Ext.data.Store2",
{
extend: 'Ext.data.Store',
idProperty: 'id',
remoteSort: true,
sorters: [
{
property: 'id',
direction: 'ASC'
}],
constructor: function(config)
{
//config = Ext.apply(
config = Ext.Object.merge(
{
proxy:
{
type: 'ajax',
url: config.url,
actionMethods:
{
read: 'POST'
},
reader:
{
root: 'data',
totalProperty: 'totalCount'
},
simpleSortMode: true
}
}, config);
//console.log(config);
this.callParent([config]);
}
});
и вот сами сторы:
var store11 = Ext.create('Ext.data.Store2',
{
pageSize: 20,
fields: ['id', 'name'],
url: 'theme.get.php',
autoLoad: true
});
var store22 = Ext.create('Ext.data.Store2',
{
pageSize: 20,
fields: ['id', 'en'],
url: 'word.get.php',
proxy:
{
extraParams:
{
theme_id: 1
}
},
autoLoad: true
});
|
ждем продолжения когда вы обнаружите что sorters у вас тоже общий между всеми экземплярами класса ;)
|
| Часовой пояс GMT +3, время: 03:01. |