Lor*_*yer 8 extjs extjs4 extjs-stores extjs4.2
我有一个链接到商店的网格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: {
...
});
Run Code Online (Sandbox Code Playgroud)
的application.js
Ext.define('Mb.Application', {
name: 'Mb',
extend: 'Ext.app.Application',
models: [
'Owner'
],
stores: [
'Owners'
],
...
Run Code Online (Sandbox Code Playgroud)
应用程序/视图/ Owners.js
Ext.define('Mb.view.winbiz.Owners', {
extend: 'Ext.grid.Panel',
alias: 'widget.test-gridPanel',
store: 'winbiz.Owners',
columns: [{
...
Run Code Online (Sandbox Code Playgroud)
视图在控制器中实例化:
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');
},
Run Code Online (Sandbox Code Playgroud)
您可以添加render处理程序以查看将调用存储load方法和禁用的处理程序autoLoad.
示例监听器:
Ext.define('Mb.view.winbiz.Owners', {
extend: 'Ext.grid.Panel',
[...],
initComponent: function(){
this.callParent();
this.on('render', this.loadStore, this);
},
loadStore: function() {
this.getStore().load();
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26736 次 |
| 最近记录: |