Несколько неясная особенность при использовании хранилища, определенного внутри модели представления, заключается в том, что вместо определения конкретных значений вы можете использовать усы '{...}' для привязки к другим полям / формулам модели представления или к конфигам компонентов, которые являются опубликовано по их ссылке (лично я нашел это наиболее полезным для помещения переменных пути в URL прокси магазина).
Вот пример сетки, привязанной к хранилищу, которая, в свою очередь, имеет свои данные, привязанные к формуле:
Ext.define('MyView', {
viewModel: {
stores: {
myStore: {
fields: ['name'],
data: '{myStoreDataFormula}'
}
},
formulas: {
myStoreDataFormula: function(get) {
return [{
name: 'Foo'
}, {
name: 'Bar'
}];
}
}
},
extend: 'Ext.grid.Panel',
xtype: 'MyView',
bind: {
store: '{myStore}'
},
columns:[{
dataIndex: 'name',
flex: 1
}]
});
Ext.application({
name : 'Fiddle',
launch : function() {
Ext.create({
xtype: 'MyView',
width: 300,
height: 300,
renderTo: Ext.getBody()
});
}
});
Да, у вас все равно было бы 2 магазина, но вы можете сделать так, чтобы хранилище второй сетки было полностью зависимым от опубликованного selection
config первой сетки.