Событие Onclick в html шаблонах ExtJs - PullRequest
0 голосов
/ 27 марта 2020

Ниже приведен пример кода, в котором я пытаюсь добавить функцию onclick, но, похоже, она работает не так, как ожидалось. Цель состоит в том, чтобы взять текстовое значение тега div и поместить его в переменную или вернуть его через забавную c, например, myFunction. Я также пытался добавить слушателей, но не знаю, как это работает. В качестве шаблона его сложно отлаживать. и событие onclick или иерархия вызовов не легко найти. Как справиться с этим простым javascript?

var resultTmpl = '<div id="group_header_{locationName}" class="current_list_audit_location expcol_{locationName:removeSpaces}" style="display:none;">'+
            '<tpl for="pickslipid">' +
         '<div class="audit_stage_list" style="margin-top: 6px !important;">' +
         '<div class="orderpickingpicklistimageurlStage margin-top"></div>' +
         '<div style="float:left;">' +
         '<div class="orderpickingpicklistStagedesc orderpickingpicklistStagedesc2" id={pickupSlipId} onclick="myfunction()" > {pickupSlipId}</div></div>' +
         '<div class="order_pick_right_stage_count_main_group_list audit_stage_pickup_date_list">' +
         '<div>Pickup Date: {pickupDate}</div>' +
         '</div>' +
         '</div>' +
         '</tpl>';

        // pass the root node of the data object

        Ext.define('sif.view.mapping.templates.EX04AuditStagingTpl', {
                extend: "Ext.XTemplate",
                html: resultTmpl,
                myfunction : function(){
                    return document.getElementByClass("orderpickingpicklistStagedesc orderpickingpicklistStagedesc2").value;
                },
                constructor: function() {
                    console.log(resultTmpl);
                    return this.callParent([this.html]);
                }
            });

            Ext.util.Format.removeSpaces = function(value) {
                  return !value ? value : String(value).replaceAll(" ", "_");
                };
            String.prototype.replaceAll = function(search, replacement) {
                    var target = this;
                    return target.split(search).join(replacement);
            };

Приведенный выше код вызывается из другого класса EX04AuditStagingLocation, как указано ниже:

var ex04AuditStagingList = Ext.create('sif.view.mapping.templates.EX04AuditStagingTpl');
    var ex04AuditStageItems = {
        xtype: 'panel',
        width: '100%',
        height: '100%',
        cls: 'my-panel',
        ui: 'plain',
        itemId: 'ex04showdetailspanel',
        layout: {
            align: 'stretch',
            type: 'vbox'
        },
        items: [{
            xtype: 'list',
            cls: 'current_page_cycle_count',
            store: 'AuditStagingStore',
            itemTpl: ex04AuditStagingList,
            itemHeight: '100%',
            height: '100%',
            emptyText: '<p id="empty-text" style="text-align:center; left: 25px;">' + PhoneTopUtil.getLocaleString(1280040) + '</p>',
            grouped: true,
            zIndex: 10,
            pinHeaders: true,
            style: 'font-family: RobotoRegular;',
            loadingText: "",
            itemId: 'ex04AuditStageList',
            id: 'ex04AuditStageList',
            listeners: {
                painted: function(element, ths) {
                    SifUtils.customImageLoad(element.select('img').elements, 0, IMAGELOADING.CONFIRMPICKUP);
                },
                refresh: function(element, options) {
                    SifUtils.customImageLoad(element.element.select('img').elements, 0, IMAGELOADING.CONFIRMPICKUP);
                },
                itemtap: function(list, index, target, record) {
                    AuditOrMoveUtil.controller.onAmMoveAction(list, null, null, record);
                },
            }
        }
...