Extjs 6 Определите связанный магазин, используя Ext.define

Можно ли определить цепное хранилище с помощью оператора Ext.define? Я попробовал следующий код, но я получаю ошибки:

Ext.define('MyProject.store.RelFiltered', {
    extend: 'Ext.data.ChainedStore',
    source:'MyProject.store.Rel',
    alias: 'store.releasesFiltered'
});

Я получаю следующие ошибки:

Ext.data.ChainedStore.applySource(): Invalid source "MyProject.store.Rel" specified for Ext.data.ChainedStore

а также

Ext.mixin.Bindable.applyBind(): Cannot use bind config without a viewModel

Я получил идею из этого поста, но кажется, что код неполон.

Спасибо

1 ответ

Решение

Можно ли определить цепное хранилище с помощью оператора Ext.define?

Определенно да. Но исходная конфигурация связанного хранилища говорит, что это должен быть либо экземпляр хранилища, либо идентификатор существующего хранилища.

Таким образом, код будет выглядеть так:

Ext.define('MyApp.store.MyChainedStore', {
    extend: 'Ext.data.ChainedStore',

    storeId: 'MyChainedStore',
    //source using storeID
    source: 'OriginalStore'

});

Ext.define('MyApp.store.OriginalStore', {
    extend: 'Ext.data.Store',

    requires: [
        'Ext.data.field.Field'
    ],

    storeId: 'OriginalStore',
    data: [{
        id: 1,
        name: 'commodi'
    }],
    fields: [{
        name: 'id'
    }, {
        name: 'name'
    }]
});

Посмотрите этот пример скрипки https://fiddle.sencha.com/

Другие вопросы по тегам