私はextjsでアプリケーションの開発を始めています。私はextjs documentationで提供されているMVCアプローチを使用しています。Extjsストアを使用してダイナミックアコーディオンを作成する
私は、一連のアコーディオンコントロールをユーザーに提示する必要のある動的データを持っています。私はストア内のデータを持っていますが、グリッドパネルとは異なり、ストアデータメソッドではないように、アコーディオンアイテムを動的に作成する方法はわかりません。
Ext.define('BP.view.induction.LeftPage', {
extend: 'Ext.Panel',
alias : 'widget.leftpage',
title: "Left Page",
layout: {
type: 'accordion',
align: 'stretch'
},
layoutConfig: {
// layout-specific configs go here
titleCollapse: true,
animate: true,
activeOnTop: true
},
items: [{
xtype: 'panel', // fake hidden panel, so all appear collapsed
hidden: true,
collapsed: false
},{
xtype: 'panel',
title: 'Panel 1',
html: 'Panel content!'
},{
xtype: 'panel',
title: 'Panel 2',
html: 'Panel content!'
},{
xtype: 'panel',
title: 'Panel 3',
html: 'Panel content!'
}]
});
上記いただければ幸いです達成する方法上の任意のガイダンスは、あなたに感謝:静的項目と -
は、ここに私の現在のアコーディオン・ビュー・コードです。
[編集] SRAの要求に応じて、ここに私のコントローラは、次のとおりです。
Ext.define('BP.controller.Induction', {
extend: 'Ext.app.Controller',
views: [
'induction.Binder'
],
stores: [
'Sections',
'Categories',
'Tasks'
],
init: function() {
console.log('Initialized Induction!');
}
});
私は、このコントローラが順番にLeftPageビューをロードする親ビューをロードすることをここで注意しなければならない - 私はわかりませんスコープの問題が発生した場合。さらに、表示されるように、複数のストアがロードされています。
ヘルプsraに感謝します。私はコードを追加し、この行を変更しました: 'me.sections.each(addItem);'と私はコントローラの '店舗'パラメータを使って店をロードしていますが、それは未定義であると私に伝えています。私はこれがかなり明白なものだと確信していますが、私はextjsの初心者なので、私はまだ基本に苦しんでいます。あなたが提供できる援助があれば幸いです。 – BrynJ
@BrynJまあ、私はそこからまっすぐ進むと思います。 Ext.widget()の代わりに、 '' BP.view.induction.LeftPage''のインスタンスを作成して、 '' Ext.create( 'BP.view.induction.LeftPage'、{store:yourStoreVariable});これが役に立たない場合は、このクラスをインスタンス化するコントローラ関数を削除してください。私は何ができるかを見ていきます。 – sra
私は確信していますが、私には分かりません:)質問にコントローラコードを追加しました。 – BrynJ