我有点奇怪的情况...

我有一个由商店支持的DataView。但是,在XTemplate中,我试图显示某种类型的JSON记录的数量。每个记录都有一个表示其类型的属性值对。例如:

data: [
 { type: 'W' },
 { type: 'A' },
 { type: 'W' },
 { type: 'W' }
]


因此,存在3个“ W”的JSON对象和1个“ A”类型的JSON对象。 “ W”的数字应在HTML元素中显示为“ total-pending”类; HTML元素中的类“ total-approved”中的“ A”。

我的XTemplate:

tpl: Ext.create('Ext.XTemplate',
        '<div style="text-align:center">Leave Requests</div>',
        '<table cellpadding="0" class="table-wrap">',
            '<tr>',
                '<td class="x-leave-request approved"><span class="total-approved">0</span>Approved</td>',
                '<td class="x-leave-request pending"><span class="total-pending">0</span>Pending</td>'denied">0</span>Denied</td>',
            '</tr>',
        '</table>'
    )


我已经阅读了一些有关模板和存储的信息,但似乎无法弄清楚如何更新这些数字。我尝试向store.on('load',function {})添加一个函数回调,以通过Ext.get(Ext.query('span.total-pending')[0])。update(3)更改HTML元素。 ),但没有效果。有什么想法吗?

最佳答案

我不确定会不会帮助您,但请尝试与我们分享结果。

尝试使一个函数计算W和A的总值,然后通过this.function()在XTemplate内部调用适当的函数



tpl: Ext.create('Ext.XTemplate',
    '<div style="text-align:center">Leave Requests</div>',
    '<table cellpadding="0" class="table-wrap">',
        '<tr>',
            '<td class="x-leave-request approved"><span class="total-approved">{totalw:this.getTotalw()}</span>Approved</td>',
            '<td class="x-leave-request pending"><span class="total-pending">{totala:this.getTotala()}</span>Pending</td>'denied">0</span>Denied</td>',
        '</tr>',
    '</table>'
)

关于javascript - ExtJS 4.2.1-存储加载后更新XTemplate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20895528/

10-10 01:31