Ядро Polymer-Ajax, похоже, дважды запускает обработчик событий it, это ошибка?

#javascript #ajax #polymer

#javascript #ajax #polymer

Вопрос:

В моем шаблоне есть два элемента core-ajax. «Кажется», что обработчик событий, который находится на первом ядре-ajax, запускается в результате ОБОИХ завершений ядра. Вот что я получил..

 <polymer-element name="pmg-report" attributes="columnSetup">
<template>

    <div id="rptTitle" class="rpt-page-head">This is the Report Page</div>

    <core-ajax auto url="/reports/report1b.txt"
               params=''
               handleas="text"
               on-core-response="{{handleRptSetupResponse}}"
    </core-ajax>

    <core-ajax auto url="/webservices/reportsws.asmx/Get_Report1"
               params=''
               handleas="json"
               on-core-response="{{handleGetReportResponse}}"
               method="post"
               contenttype="application/json; charset=utf-8">
    </core-ajax>

    <div class="pgm-test">
        <template repeat="{{group in groups}}">
            <pmg-group groupid={{group.id}}></pmg-group>
        </template>
    </div>
</template>
    <script>

        Polymer('pmg-report', {

            handleRptSetupResponse: function (e) {
                var theR = e.detail.response;
                console.log('handleRptSetup->', e.detail.response);
                var jsColSetup = JSON.parse(theR);
                rptSetup = jsColSetup;

            },

            handleGetReportResponse: function (e) {

                var theData = JSON.parse(e.detail.response.d);
                var cols = Object.keys(theData[0]);

                //Setup global Columns list
                for (cnt = 0 ; cnt < cols.length ; cnt  ) {
                    columns.push({ name: cols[cnt] });
                }

                //Process data.
                for (cnt = 0; cnt < theData.length; cnt  ) {
                    theData[cnt].id = cnt   1;

                    if ( cnt < 100 ) {
                        dispRows.push(theData[cnt]);
                    }

                }

                console.log('dispRows.length (rpt)->', dispRows.length);

                this.groups = [
                    { id: 1 },
                    { id: 2 }
                ];

                this.$.rptTitle.innerHTML = rptSetup.title;

            },
  

Итак, что со мной происходит, так это то, что когда выполняется метод «handleRptSetup», когда происходят оба вызова ajax-ядра. «handleGetReportResponse» выполняется только один раз. Второй e.detail.response, возвращаемый в «handleRptSetup», предназначен для «handleGetReportResponse». «handleGetReportResponse» выполняется только один раз и получает правильный ответ.

Итак, мне интересно, является ли это ошибкой? Или я чего-то здесь не понимаю?

Комментарии:

1. В вашем первом <core-ajax отсутствует закрытие > . Проверьте свой текущий код на наличие этой проблемы.

2. Дерьмо Холли… Мораль этой истории: не отправляйте вопросы в конце дня! Большое вам спасибо, что нашли мою глупость!