選択したデータをツリーパネルからグリッドパネルにバインドする際に問題が発生しています。
ツリーのリーフであるノードを選択すると、その子が下のバインドされたグリッドにロードされます。
それに対する私の解決策は、ストア全体を一度にロードしてから、組み込み機能を使用して結果をフィルタリングすることですが、まだ必要な結果を生成していません。フィルターの 1 つが私が望むものを生成していますが、それが唯一のものです (JSFiddle リンクを確認してください) - エラーはスローされません。
JSFiddle でデモンストレーションを作成しました: http://jsfiddle.net/E3LPa/
問題はこのコントローラーにあると思います:
Ext.define('Exxica.controller.CalculationSidebar', {
extend: 'Ext.app.Controller',
models: [
'ResourceGroup',
'ResourceItem'],
stores: [
'ResourceGroups',
'ResourceItems'],
views: [
'ResourceItemsGrid',
'Debug'],
onTeCalculation_RightSidebar_TabPanel_ResourceGroupsSelect: function (model, selected, eOpts) {
var store = this.getStore("ResourceItems");
var item = selected[0];
if (item.get('leaf')) {
if (this.setFilter(item.get('id'), store)) store.reload();
}
},
setFilter: function (f, s) {
var fId = parseInt(f, 10);
console.log(s);
if (fId !== 0) {
s.clearFilter();
s.filter('group_id', fId);
return true;
} else {
return false;
}
},
init: function (application) {
this.control({
"#teCalculation_RightSidebar_TabPanel_ResourceGroups": {
selectionchange: this.onTeCalculation_RightSidebar_TabPanel_ResourceGroupsSelect
}
});
}
});
誰かが私が間違っていることを理解するのを手伝ってくれるなら、それは大歓迎です。