我是所有Sencha Touch的新手,但直到现在我对它的能力非常热情。有一个问题,我莫名其妙无法解决。
我想使用Tpl(XTemplate)作为日历视图。我们的想法是为每个约会创建一个div元素,我可以在容器中放置它们来布局它们。不知怎的,我无法让dataview工作。
我已经将我的代码剥离到最低限度:一个包含DataView的面板。当我使用itemTpl时,一切正常。但是当我使用tpl(有或没有XTemplate)时,我什么都看不到。我检查了它是否只是显示器故障(从模板中搜索了XXX),但事实并非如此。
这是我的代码:
Ext.define('InfoApp.view.CalendarDay', {
extend: 'Ext.Panel',
xtype: 'calendarday',
requires: [ 'InfoApp.store.sAppointments'],
config: {
title: 'Dag',
layout: 'fit',
items: [
{
xtype: 'dataview',
store: 'appointmentStore',
//itemTpl: [ 'XXX {day} {course}' ] --> Works
tpl: new Ext.XTemplate('<tpl for=".">XXX {day} {course}</tpl>')--> Doesn't Work...
}
]
}
});
提前感谢任何建议或改进!
答案 0 :(得分:0)
假设ST2而不是ST1
来自http://docs.sencha.com/touch/2-0/#!/api/Ext.Component-cfg-tpl以及文档中tpl:config的注释,使用远程商店时会出现错误。即使你的商店有数据。 tpl:显然只有你的数据在数据中被硬编码才能正常工作:[]
你可以使用itemTpl:new XTemplate()或itemTpl:XTemplate.from('someid'),或者你可以推迟指定直到之后,抓住你的数据视图并转到dv.setItemTpl(new XTemplate())等。 / p>
答案 1 :(得分:0)
坦克@brink为您的答案。
我花了几天时间,但这对我有用:
// Load the store
var store = Ext.getStore('appointmentStore');
// Get the current range of the store
var data = store.getRange();
// Create a custom template
var tpl = new Ext.XTemplate(<tpl for=".">{day} {course}</tpl>);
// Loop through the data array
var showData = array();
for(var i=0;i<data.length;i++){
showData.push(data[i].data);
}
// Get the panel by ID and push the html template
var panel = Ext.getCmp('appointmentspanel');
panel.updateHtml(tpl.applyTemplate(showData));