首页 > 解决方案 > 如何在 XTemplate -Extjs 中调用 2 个函数

问题描述

我试图renderFunction在 extjs 中调用 XTemplate 中的函数,但它没有调用renderPartition. 这是在extjs中调用函数的正确方法吗?

无法看到任何控制台错误。

Igo.EndpointTpl = new Ext.XTemplate('<tr>',
        ' <th class="header-140">Media Handler</th>',
        ' <td>{endpointInstance.mhaddress}{[this.renderPopName(values.endpointInstance.mhaddress)]},{[this.renderPartition(partitionValue)]}</td>',
        '</tr>' {


            renderPopName: function(address) {
                if (address) {
                    var popId = address.split(".", 2)[1];
                    return Ext.String.format('<span class="txt-color-red"> ({0})<span>', Igo.Pop.getFriendlyName(popId));
                } else {
                    return '';
                }
            },

            renderPartition: function(records) {
                let get_internalId = records[0].internalId;
                let ele_meetingID = records[0].data.meetingID;
                let ele_Partition = records[0].data.partition;
                if (ele_Partition && ele_meetingID === get_internalId) {
                    return Ext.String.format('<span class="txt-color-red"> ,({0})<span>', ele_Partition);
                } else {
                    return "";
                }
            }
        );

标签: extjsextjs4.2

解决方案


您的代码段中有几个拼写错误,最后一个 tr 标记后缺少逗号,缺少右大括号。另外,我建议对您的 xtemplate 使用数组表示法。这是您的片段,其中包含我建议的更改。在我的示例中触发了模板函数

Igo.EndpointTpl = new Ext.XTemplate(['<tr>',
' <th class="header-140">Media Handler</th>',
' <td>{endpointInstance.mhaddress}{[this.renderPopName(values.endpointInstance.mhaddress)]},{[this.renderPartition(partitionValue)]}</td>',
'</tr>',{
    renderPopName : function(address) {
        if (address) {
            var popId = address.split(".", 2)[1];
            return Ext.String.format('<span class="txt-color-red"> ({0})<span>', Igo.Pop.getFriendlyName(popId));
        } else {
            return '';
        }
    },

    renderPartition: function(records){
        let get_internalId = records[0].internalId;
        let ele_meetingID = records[0].data.meetingID;
        let ele_Partition = records[0].data.partition;
        if(ele_Partition && ele_meetingID === get_internalId){
            return Ext.String.format('<span class="txt-color-red"> ,({0})<span>', ele_Partition);
        }else{
            return "";
         }
    }}
  ]);

推荐阅读