我正在尝试从列表中加载项目公开的详细信息视图,但不使用NavigationView和“push()”命令。
CONTROLLER :
Ext.define('App.controller.MyPlans', {
extend: 'Ext.app.Controller',
requires: ['App.view.EventDetail',
'App.view.PlansContainer'],
config: {
refs: {
},
control: {
'MyPlansList': {
disclose: 'onDisclose'
}
}
},
onDisclose: function (view, record) {
console.log("My Plans list disclosure " + record.get('id'));
var eventDetailView = Ext.create('App.view.EventDetail');
eventDetailView.setRecord(record);
Ext.Viewport.setActiveItem(eventDetailView);
}
});
查看:
Ext.define('App.view.EventDetail', {
extend: 'Ext.Panel',
xtype: 'EventDetail',
config: {
items: [{
xtype: 'toolbar',
docked: 'top',
title: 'Event Name',
items: [{
xtype: 'button',
id: 'addRunBackBtn',
ui: 'back',
text: 'Back'
}]
}, {
xtype: 'panel',
styleHtmlContent: true,
itemTpl: [
'<h1>{name}</h1>',
'<h2>{location}</h2>',
'<h2>{date}</h2>']
}],
}
});
我基本上是尝试使用“setRecord()”命令将数据传递给视图,但视图中似乎没有任何内容。有什么想法??
由于
答案 0 :(得分:1)
而不是ItemTpl只是写Tpl。我怀疑itemTpl是否存在没有列表xtype。
其他的事情是把Tpl放在config:
{tpl:['<div class="ListItemContent">{descriptionddata}</div>']}
我之前/之上的答案是好的,但如果你打算将格式保留在视图中而不是在控制器中,那么它的工作方式是使用setData而不是setRecord
detailview.setData({title:record.get('title'), description:record.get('descriptiondata')});
答案 1 :(得分:0)
我在这里找到了问题:
面板没有itemTpl
{
xtype: 'panel',
styleHtmlContent: true,
itemTpl : [
'<h1>{name}</h1>',
'<h2>{location}</h2>',
'<h2>{date}</h2>'
]
}
可能的方法之一可能是:
更改视图:
{
xtype: 'panel',
id: 'thePanel',
styleHtmlContent: true
}
更改控制器:
onDisclose: function(me, record, target, index, e, eOpts) {
...
Ext.getCmp('thePanel').setHtml('<h1>'+record.get('name')+'</h1><h2>'+record.get('location')+'</h2><h2>'+record.get('date')'</h2>'); //For setting the Data
...
}
希望这有帮助!
答案 2 :(得分:0)
而不是面板试用列表如下
Ext.define('App.view.EventDetail', {
extend: 'Ext.TabPanel',
xtype: 'EventDetail',
config: {
items: [{
xtype: 'toolbar',
docked: 'top',
title: 'Event Name',
items: [{
xtype: 'button',
id: 'addRunBackBtn',
ui: 'back',
text: 'Back'
}]
}, {
xtype: 'list',
styleHtmlContent: true,
itemTpl: [
'<h1>{name}</h1>',
'<h2>{location}</h2>',
'<h2>{date}</h2>']
}],
}
});