データをロードする前に必要な多くの「ビュー」があるかどうかわからないため、動的に grid.Panels を作成してビューに追加しようとしています。たとえば、さまざまなグループに多数の人がいます。データをロードしたら、各グループに grid.Panel を作成し、適切な人をそこに配置したいと考えています。
問題は、実行するとアプリケーションがハングすることです (おそらくストアが再帰的にロードされているため)
ハングすることなく、ストアからのデータを使用してビューに grid.Panel を追加するにはどうすればよいですか?
私のコントローラー:
Ext.define('NG.controller.Navigation', {
extend: 'Ext.app.Controller',
refs: [{
selector: 'group',
ref: 'groupPanel'}
],
stores: ['Groups'],
init: function() {
this.control({
'navigation': {
itemdblclick: this.onNavigationSelection
}
});
},
onNavigationSelection: function(view, record, item, index, eventobj, obj) {
var groupsstore = this.getGroupsStore();
var group1 = Ext.create('Ext.grid.Panel', {
store: groupsstore,
title: 'Group 1',
columns: [
{header: 'Name', dataIndex: 'name'},
{header: 'Mail:', dataIndex: 'mail'}
]
});
groupsstore.load();
this.getGroupPanel().add(group1);
}
});
私の見解:
Ext.define('NG.view.Group', {
extend: 'Ext.panel.Panel',
alias: 'widget.group',
store: 'Groups',
initComponent: function() {
this.callParent();
}
});
そして私の店(それが必要かどうかわからない):
Ext.define('NG.store.Groups', {
extend: 'Ext.data.Store',
requires: 'NG.model.Person',
model: 'NG.model.Person'
});
よろしくお願いします!
アンドレアス