タブパネルのリストビューに次のリスナーがあります。
listeners: {
itemtap: function (list, index, item, e) {
var record = list.getStore().getAt(index);
this.fireEvent('showListCommand', this, record);
}
これは私のコントローラーの構成です:
config: {
refs: {
mainView: "mainview",
activeLists: "activelists",
listView: "listview"
// I deleted some code for easier reading
},
control: {
activeLists: {
showListCommand: "onShowListCommand"
}
}
},
これは onShowListCommand 関数とそれが呼び出す関数で、どちらもコントローラーにあります。
onShowListCommand : function (list, record) {
this.activateListView(record);
},
slideLeftTransition: { type: 'slide', direction: 'left' },
activateListView: function (record) {
var listView = this.getListView();
listView.setRecord(record);
console.log(record.get('id'));
Ext.Viewport.animateActiveItem(listView, this.slideLeftTransition);
},
コンソール ログはここで期待どおりに機能し、タップされたリスト アイテムの ID をログに記録します。また、setRecord関数が機能することも知っています.listViewのフォームテキストフィールド内のモデルのタイトル、ID、および予算フィールドの両方が表示されます。
今、私が過去 10 時間で成功しようとしているのは、これらのモデル フィールドを listView に渡し、それらを form の外、たとえばタイトルや html で使用できるようにすることです。基本的に、タブ パネル内にリストがあり、itemtap では Ext.Viewport.animateActiveItem を使用して別のビューを表示しています。
ListView は「Ext.form.Panel」であり、現在、initialize() 関数を介してツールバーとフィールドセットがありますが、フィールドセットをプレーンな html に置き換えたいのですが、setRecord() からのデータを使用できません。仕方。