Как вызвать функцию 2 в XTemplate -Extjs - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь вызвать функцию renderFunction в XTemplate в extjs, но она не вызывает 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 "";
                }
            }
        );

1 Ответ

0 голосов
/ 10 января 2019

у вас есть несколько опечаток в вашем фрагменте, пропущенная запятая после последнего тега 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 "";
         }
    }}
  ]);
...