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/