Polymer Core-Ajax似乎两次运行它事件处理程序,这是一个错误吗?

时间:2014-07-03 22:40:58

标签: javascript ajax polymer

我的模板中有两个core-ajax元素。它"出现"由于BOTH核心完成,第一个core-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;

            },

...

所以我发生的事情是当&#34; handleRptSetup&#34;当两个ajax-core调用都发生时,方法正在执行。 &#34; handleGetReportResponse&#34;只被执行一次。第二个e.detail.response返回&#34; handleRptSetup&#34;是用于&#34; handleGetReportResponse&#34;的那个。 &#34; handleGetReportResponse&#34;只执行一次并得到正确的答复。

所以我想知道这是不是一个错误?或者我在这里不明白?

0 个答案:

没有答案