我的模板中有两个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;只执行一次并得到正确的答复。
所以我想知道这是不是一个错误?或者我在这里不明白?