で店舗にリンクされたグリッドがありautoLoad: true
ます。問題は、後でメニューからアクセスしたときにのみビューが作成される場合でも、アプリケーションの起動時にストアがロードされることです。
Application.js とビューでストアを参照しましたが、ストアもビューも明示的に開始していません。
ビューで必要な場合にのみストアが読み込まれるようにする方法がわかりません。
- を設定
autoLoad: true
すると、アプリケーションの起動時にストアが読み込まれます。 - を設定
autoLoad: false
すると、ストアはまったくロードされません。
これはかなり基本的なことですが、これまでのところ行き詰まっています。
関連するすべてのコードは次のとおりです:
app/store/Owners.js
Ext.define('Mb.store.Owners', {
extend: 'Ext.data.Store',
model: 'Mb.model.Owner',
autoLoad: true,
proxy: {
...
});
アプリケーション.js
Ext.define('Mb.Application', {
name: 'Mb',
extend: 'Ext.app.Application',
models: [
'Owner'
],
stores: [
'Owners'
],
...
アプリ/ビュー/Owners.js
Ext.define('Mb.view.winbiz.Owners', {
extend: 'Ext.grid.Panel',
alias: 'widget.test-gridPanel',
store: 'winbiz.Owners',
columns: [{
...
ビューはコントローラーでインスタンス化されます。
Ext.define('Mb.controller.Winbiz', {
extend: 'Ext.app.Controller',
views: [
'Owners'
],
init: function(){
this.control({
'menu #test': {click: this.onMenuTest},
})
},
onMenuTest: function(){
this.getController('Main').addToMainTab('test-gridPanel');
},