我在选项卡面板的列表视图中有以下侦听器:
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并能够在表单之外使用它们,例如在标题或 html 中。所以基本上我在选项卡面板中有一个列表,在 itemtap 上我使用 Ext.Viewport.animateActiveItem 显示另一个视图。
ListView 是“Ext.form.Panel”,它目前有一个工具栏和一个通过 initialize() 函数的字段集,但我想用一些普通的 html 替换字段集,但我不能在任何情况下使用来自 setRecord() 的数据方式。