无法遍历数组。 For循环失败

时间:2019-04-17 19:41:00

标签: javascript arrays extjs

我正在从服务调用中获取子数组,并尝试打印数组值。 我能够获取值并存储在数组中。但是当我尝试使用Extjs tpl循环遍历数组时。条件不合格 enter image description here 我检查过 1.控制要到tpl,for之前的任何内容都将被打印 2.数组有4条记录。

initComponent: function() {
var me = this;
var dataItems= me.loadData();
this.items = [{                     
    xtype : 'dataview',             
    store: 'proceduresDateGroupedByCodeGroupSid',
    multiSelect: true,
    trackOver: true,
    overItemCls: 'lab-result-detail-row ',
    itemSelector : '.item-selector',
    padding : '0 0 0 0',

    tpl: new PD.view.component.CTemplate(
         '<div>HELLO</div>',
        '<tpl for="dataItems">',                        
        '<div>hello</div>', 
        '<div>{this.formatDate},
         '</div>', 
        '</tpl>', 

理想情况下,它应打印“ hello”四次。

2 个答案:

答案 0 :(得分:0)

您的ItemSelector指定了一个名为item-selector的类,但是在您的tpl中,该类没有div,请尝试使用该类。

 itemSelector:'div.item-selector',
 tpl: new PD.view.component.CTemplate(
         '<div>HELLO</div>',
        '<tpl for=".">',                        
        '<div classs="item-selector">hello</div>', 
        '<div>{this.formatDate},
         '</div>', 
        '</tpl>', 

Fiddle

答案 1 :(得分:0)

问题与您未指定class =“ item-selector”无关,如下面的代码所示

Ext.application({
    name: 'Fiddle',

    launch: function () {
        Ext.Msg.alert('Fiddle', 'Welcome to Sencha Fiddle!');
        var store = Ext.create('Ext.data.Store', {
            data: [{
                name: 'lorem',
                value: '01'
            }, {
                name: 'ipsum',
                value: '02'
            }, {
                name: 'dolor',
                value: '03'
            }, {
                name: 'sit',
                value: '04'
            }]

        });
        Ext.create('Ext.panel.Panel', {
            title: 'Hello',
            bodyPadding: 10,
            width: 200,
            renderTo: Ext.getBody(),
            items: [{
                xtype: 'dataview',
                store: store,
                 itemSelector: 'div.item-selector',
                tpl: new Ext.XTemplate(
                    '<tpl for=".">',
                    '<div>HELLO</div>',
                    '<div>hello</div>',
                    '<div style="border-bottom: thin solid black">{name}</div>',
                    '</tpl>'
                )
            }]

        });
    }
});

Fiddle for上述代码。

问题由@norbeq在@Matheus Hatje给出的答案中指出。

的位置
  你好

**<tpl for=".">**上方,它不包含在外观中,因此只能打印一次。