Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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
подскажите как правильно прописать класс.
Ответить с цитированием
  #2 (permalink)  
Старый 12.11.2013, 00:35
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 19.12.2009
Сообщений: 164

Сообщение от skrudjmakdak Посмотреть сообщение
подскажите как правильно прописать класс.
Ext.data.ArrayStore.constructor
constructor: function(config) {
        config = Ext.apply({
            proxy: {
                type: 'memory',
                reader: 'array'
            }
        }, config);
        this.callParent([config]);
    },
__________________
"Helo, word!" - 17 errors 56 warnings

Последний раз редактировалось Ex_Soft, 12.11.2013 в 01:03.
Ответить с цитированием
  #3 (permalink)  
Старый 12.11.2013, 13:45
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

ага, понял.. позже попробую
Ответить с цитированием
  #4 (permalink)  
Старый 12.11.2013, 15:48
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

писибки. вот что получилось:

вот сам класс
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
	});
Ответить с цитированием
  #5 (permalink)  
Старый 13.11.2013, 10:44
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 214

ждем продолжения когда вы обнаружите что sorters у вас тоже общий между всеми экземплярами класса
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ExtJS4 Обход store pauluss ExtJS 4 14.01.2013 14:25
Store: отловить событие success=false posta ExtJS 1 01.03.2012 11:55
Данные из store не успевают попадать в chart kalya ExtJS 0 02.11.2011 14:14
GridPanel "теряет" свой store при многократном вызове экземпляров GridPanel Lokich ExtJS 1 09.09.2011 10:12
Использование combobox поля в grid dionic ExtJS 0 26.05.2011 14:12