Тема: store extend
Показать сообщение отдельно
  #1 (permalink)  
Старый 10.11.2013, 14:47
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

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
подскажите как правильно прописать класс.
Ответить с цитированием