我有一个名为his-service的聚合物元素:
<polymer-element name="gis-service" attributes="response url">
<template>
<style>
</style>
<core-ajax id="ajax"
auto
url="{{url}}"
method="get"
contentType = 'application/json'
on-core-response="{{postsLoaded}}"
body="{{body}}"
handleAs="xml">
</core-ajax>
</template>
<script>
Polymer('gis-service', {
created: function() {
this.response = [];
},
postsLoaded: function() {
this.response = [];
this.labels = [];
this.coordinates = [];
x = this.$.ajax.response.getElementsByTagName("CustomerServiceCenterData");
for (i=0;i<x.length;i++) {
if (x[i].getElementsByTagName("language")[0].innerHTML == "EN")
{
this.labels[i] = x[i].getElementsByTagName("label")[0].innerHTML;
this.coordinates.push({
lat:x[i].getElementsByTagName("lat")[0].innerHTML,
lng:x[i].getElementsByTagName("lng")[0].innerHTML
})
}
}
console.log(this.coordinates);
}
});
</script>
</polymer-element>
在索引文件中,我尝试访问对象标签和坐标。以下是索引的一部分:
<gis-service id="gservice" response="{{labels}}" url="someUrl">
</gis-service>
<script>
var gis_service = document.querySelector('gis-service');
console.log(gis_service);
</script>
如您所见,我正在尝试通过querySelector访问标签和坐标。但是,当我尝试通过以下方式获取标签时:
gis_service.labels
它给了我未定义的。变量坐标也是如此。 我这样做时可以看到两个变量:console.log(gis_service),但无法访问它们。 任何帮助表示赞赏。
答案 0 :(得分:0)
在函数之外定义它,然后你应该能够在外部使用它。此格式适用于.8版本。 1.0版本将需要使用新格式。
created: function() {
this.response = [];
},
labels: undefined,
postsLoaded: function() {
&#13;
答案 1 :(得分:0)
您应该阅读有关数据绑定here
的内容不要这样做:
<core-ajax id="ajax"
auto
url="{{url}}"
method="get"
contentType = 'application/json'
on-core-response="{{postsLoaded}}"
body="{{body}}"
handleAs="xml">
</core-ajax>
请改为:
<core-ajax id="ajax" auto url="{{url}}" method="get" contentType ='application/json' on-core-response="{{postsLoaded}}" body="{{body}}" handleAs="xml"></core-ajax>
不支持将绑定放在不同的行上
答案 2 :(得分:0)
您可以尝试其他方法来尝试访问这些值
var yourElement = document.getElementById('gservice');
如果这不起作用,请尝试使用&#39; querySelector&#39;如下图所示:
<gis-service id="gservice" class="gservice"
response="{{labels}}" url="someUrl">
</gis-service>
<script>
var gis_service = document.querySelector('gservice');
console.log(gis_service);
</script>
请参阅其他类属性。
我还建议你升级到Polymer 1.0,因为它允许更强大的方法来做事......