私のメニューを構築するためのプロキシを使用しない単純なTreeStoreを使用しています。ここでは簡単な例です:ExtJS4:Treestoreからコントローラへのパラメータ/プロパティの受け渡し
ストア:I'veは "クリック" イベントにリスナーを追加コントローラで
Ext.define('LT.store.MnuApplication', {
extend: 'Ext.data.TreeStore',
root: {
expanded: true,
children: [{
text: "Lists",
expanded: true,
children: [{
text: "Countries",
leaf: true,
}]
}]
}
});
:
コントローラー:
init: function() {
this.control({
/**
* Catch the treepanels in the menu accordion
*/
'menu-main treepanel': {
itemclick: function (view, record, item, index, event){
var clickedMnuNode = record;
var tabPanel = this.getTabPanel();
// Open tab only if the menu node is a leaf node
if (clickedMnuNode.isLeaf()) {
tabPanel.add({
xtype: clickedMnuNode.raw.loadTabComponent
}).show();
}
}
}
});
this.callParent();
}
これで私の問題は解決しました:私はTreeStoreでどのアクションをコントローラによって実行されます - 特にどのコンポーネントがロードされるべきですか。
は、例えば、私はTreeStoreのは、このようになっていることを希望:あなたが見ることができるように
Ext.define('LT.store.MnuApplication', {
extend: 'Ext.data.TreeStore',
root: {
expanded: true,
children: [{
text: "Lists",
expanded: true,
children: [{
text: "Countries",
leaf: true,
loadComponent: 'country-list',
loadTarget: 'tabPanel'
}]
}]
}
});
はI'veツリーリーフへの2つの新しいパラメータを追加しました。今では、レコードの「RAW」メソッドを使用してそれらのデータセットにアクセスできません。しかし、それは本当にすてきな解決策ではありません - そうではありませんか?
TreeStoreからコントローラーへの追加パラメーター(「loadComponent」や「loadTaget」など)を渡す方法は誰にでも分かりますか?事前に
おかげ&歓声、過去に マイケル
私は同様の問題があるので、ノードのGUIDをTreeStoreプロキシに渡すと、次のレベルのノードが展開されたノードに基づいてロードされますか? – sambomartin
モデルでidPropertyを設定する必要があります。プロキシは要求を行うときにこのプロパティを使用します。 –
あなたはスターです!本当にシンプル。ありがとう – sambomartin