Я пытаюсь обратиться к магазину в своем приложении с целью добавления панели инструментов поискового вызова в нижней части моей опоры. В большинстве примеров я изучил хранилище, на которое ссылается переменная, например: store: someStore. Тем не менее, я создаю свое приложение немного по-другому и создал ссылочную переменную в хранилище. У меня пытался назначить идентификатор, но это не сработало.ExtJS Grid - как я могу ссылаться на хранилище по id в моем представлении
Вот что у меня есть:
На мой взгляд Grid.js:
Ext.define('myApp.view.user.Grid', {
extend: 'Ext.grid.Panel',
viewModel: {
type: 'user-grid'
},
bind: {
store: '{users}',
},
columns: {...},
//my paging tool bar
dockedItems: [{
xtype: 'pagingtoolbar',
dock: 'bottom',
store: 'girdStore'
//store: {users} -> did not work
}],
...
});
На мой взгляд модель GridModel.js:
Ext.define('myApp.view.user.GridModel', {
extend: 'Ext.app.ViewModel',
requires: [
'myApp.model.User'
],
stores: {
users: {
model: 'myApp.model.User',
storeId: 'gridStore',
autoLoad: true
}
},
formulas: {...}
});
Когда я пытаюсь ссылаться на { пользователи} хранить по id 'gridStore' Я получаю эту ошибку:
Uncaught TypeError: Cannot read property 'on' of undefined
Каков наилучший способ работы без полной реорганизации моей модели?
Да, я делаю это в своем контроллере, чтобы подключить магазин к моему виду, но я не уверен, как это помогает мне со ссылкой на него в dockedItems. Добавление bind: store: '{users}'} удалило ошибку, но оно не показывает никаких данных, поскольку я добавляю записи через мой метод addRecord. – MadCatm2
Хорошо извиняюсь за немой вопрос (я очень новичок в EXTjs), но где бы этот метод initComp пошел? Как метод класса Ext.define ('myApp.view.user.Grid', {})? – MadCatm2
Правильно я вижу, но это имеет тот же эффект, что и просто добавление bind: store: '{users}'} to dockedItems [{...}] Удаляет TypeError, но моя панель инструментов персонального вызова не отображает количество записей или страниц. Эта проблема может быть не связана с правильной ссылкой на магазин ... – MadCatm2