在sencha touch 2.1.0中使用XTemplate循环数组

时间:2013-09-09 03:59:32

标签: extjs sencha-touch sencha-touch-2 sencha-touch-2.1

Ext.XTemplate Docs说:

tpl标记和for运算符用于处理提供的数据对象:

  • 如果for中指定的值是一个数组,它将自动填充,在数组中的每个项目的tpl标记内重复模板块。
  • 如果for =“。”如果指定,则检查提供的数据对象。
  • 处理数组时,特殊变量{#}将提供当前数组索引+ 1(从1开始,而不是0)。

我按照第一条规则并使用对象数组分配面板的数据配置,但它只显示一个空白。代码如下:

                  {
                 xtype : 'panel',
                 tpl : new Ext.XTemplate([
                          '<tpl>',
                            '<div>',
                                '{index}',
                            '</div>',
                          '</tpl>'
                 ]),
                 data : [
                         {index : '11'},
                         {index : '12'},
                         {index : '13'}
                 ]
              }

所以我按照第二条规则'for="."'添加'<tpl>',它有效!所以,我想知道是否真的意味着如果你只想用Ext.XTemplate循环数组,你必须添加'for="."'

,使用'for="."'声明是不是很糟糕?

1 个答案:

答案 0 :(得分:0)

是的,<tpl for=".">表示迭代“活动”对象。例如,“active”对象从外部数组更改为内部数组,因为在迭代期间我们指向内部数组:

var tpl = new Ext.XTemplate([
    '<tpl for=".">', // "." points to the outer array
        '<tpl for=".">', // "." points to each inner array
            '{.}',
        '</tpl>',
    '</tpl>'
]);

console.log(tpl.apply([
    [1, 2],
    [3, 4]
]));