0

我是所有 Sencha Touch 东西的新手,但直到现在我对它的功能非常热情。有一个问题,不知怎么解决不了。

我想将 Tpl (XTemplate) 用于日历视图。这个想法是为每个约会创建一个 div 元素,我可以将其放置在容器中以对其进行布局。不知何故,我无法让数据视图工作。

我已将我的代码精简到最低限度:一个包含 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... 
                }        
        ]
}
});

提前感谢您的任何建议或改进!

4

2 回答 2

0

假设 ST2 而不是 ST1

http://docs.sencha.com/touch/2-0/#!/api/Ext.Component-cfg-tpl和文档中 tpl: config 的评论来看,使用遥控器时似乎存在错误店铺。即使您的商店有数据。tpl:显然只有当您的数据在 data 中硬编码时才有效:[]

您可以使用 itemTpl: new XTemplate() 或 itemTpl: XTemplate.from('someid') 或者您可以推迟指定直到之后,获取您的数据视图并转到 dv.setItemTpl(new XTemplate()) 等。

于 2012-07-27T19:06:33.247 回答
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));    
于 2012-08-03T14:54:57.410 回答