Как использовать 2 стора в extjs?

Пользователь

от marc_zboncak , в категории: JavaScript , год назад

Как использовать 2 стора в extjs?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от kameron , год назад

@marc_zboncak 

В ExtJS можно использовать несколько хранилищ данных (store) в одном приложении. Для этого можно создать объект класса Ext.data.Store для каждого хранилища и затем использовать их в соответствующих компонентах.


Например, если вы хотите создать два хранилища - для списка пользователей и для списка заказов - вы можете создать их следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var userStore = Ext.create('Ext.data.Store', {
    fields: ['id', 'name', 'email'],
    proxy: {
        type: 'ajax',
        url: '/users.json',
        reader: {
            type: 'json',
            rootProperty: 'users'
        }
    },
    autoLoad: true
});

var orderStore = Ext.create('Ext.data.Store', {
    fields: ['id', 'product', 'quantity'],
    proxy: {
        type: 'ajax',
        url: '/orders.json',
        reader: {
            type: 'json',
            rootProperty: 'orders'
        }
    },
    autoLoad: true
});


Здесь мы создаем два объекта хранилища данных: userStore и orderStore. Каждое хранилище имеет свои собственные поля (fields), прокси-конфигурацию (proxy), а также автоматически загружает данные из соответствующих JSON-файлов.


Далее, для каждого компонента, который должен использовать данные из этих хранилищ, вы можете указать соответствующее хранилище в качестве значения свойства store. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
var userGrid = Ext.create('Ext.grid.Panel', {
    store: userStore,
    columns: [
        { text: 'ID', dataIndex: 'id' },
        { text: 'Name', dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email' }
    ]
});

var orderGrid = Ext.create('Ext.grid.Panel', {
    store: orderStore,
    columns: [
        { text: 'ID', dataIndex: 'id' },
        { text: 'Product', dataIndex: 'product' },
        { text: 'Quantity', dataIndex: 'quantity' }
    ]
});


Здесь мы создаем две сетки (grid), userGrid и orderGrid, и указываем соответствующие хранилища данных для каждой из них.


Таким образом, мы можем использовать несколько хранилищ данных в ExtJS, чтобы обрабатывать данные из разных источников и использовать их в соответствующих компонентах.