1
所以我做了一個簡單的列表組件視圖。當我點擊一個列表的披露按鈕時,我有一個控制器將創建一個詳細視圖,該視圖還將關於該列表的數據推送到詳細視圖中以便在tpl屬性中使用。Sencha Touch 2.3:將列表視圖中的數據推送到詳細視圖
這裏是我的代碼: 應用程序/視圖/主:
Ext.define ('Prac.view.Main', {
extend: 'Ext.Panel',
xtype: 'mainpanel',
requires: ['Prac.store.Names'],
config:{
layout: 'vbox',
items: [
{
xtype: 'titlebar',
docked: 'top',
title: 'Mainpanel',
items: [
{
xtype: 'button',
ui: 'confirm',
iconCls: 'add',
action: 'addName',
align: 'right'
}
]
},
{
xtype: 'list',
flex: 1,
grouped: true,
indexBar: true,
itemTpl: '{firstName} {lastName}',
store: 'Names',
onItemDisclosure: true,
}
]
}
});
應用程序/控制器/主:
Ext.define ('Prac.controller.Main', {
extend: 'Ext.app.Controller',
config: {
refs: {
view: 'viewpanel',
det: 'detail'
},
control: {
'list' : {
disclose: 'showDetail'
}
}
},
showDetail: function(list, record) {
var det = Ext.create('Prac.view.Detail', {
data: record.data
});
Ext.Viewport.setActiveItem(det);
}
});
應用程序/視圖/詳情:
Ext.define('Prac.view.Detail', {
extend: 'Ext.Panel',
xtype: 'detail',
config: {
items: [
{
xtype: 'titlebar',
title: 'Detail View',
docked: 'top'
},
{
xtype: 'panel',
styleHtmlContent: true,
scrollable: 'vertical',
title: 'Details',
//html: 'Hello, World!'
tpl: 'Hello {firstName} {lastName}',
data: null
}
]
}
});
我認爲這個問題可能是範圍。由於tpl屬性嵌套在「項目」屬性而不是配置中,因此組件無法使用從控制器傳遞給詳細視圖的數據。所以我不知道如何將數據從一個視圖推送到另一個視圖,而是想知道如何將數據從一個視圖推送到另一個視圖中的特定組件。
太棒了,this.down()方法似乎是指操縱DOM。 – bdmike