聚合物:确保在另一个聚合物元件之前执行

时间:2015-05-30 12:56:28

标签: javascript polymer web-component

在我的索引文件中,我使用了两个自定义聚合物元素;地理位置和gis服务。第一个目的是获取用户的当前位置,然后将纬度和经度馈送到gis-service。 索引文件的一部分:

<geo-location watchpos></geo-location>
<template is="auto-binding">
    <gis-service id="gservice" latitude="{{latitude}}" longitude="{{longitude}}">Use lat and long here</gis-service>
</template>

我通过以下方式更新gis-service的纬度和经度:

var t = document.querySelector('template');
var geolocation = document.querySelector('geo-location');
geolocation.addEventListener('geo-response', function(e) {
          t.latitude = this.latitude.toFixed(6);
          t.longitude = this.longitude.toFixed(6);
 });

但是,当纬度和经度传递给gis-service时,它表明它们是未定义的。我怀疑在分配纬度和经度之前调用/执行了gis-service。所以我的问题是,在将它们分配给gis-service元素之前,如何确保调用地理位置元素和(获取纬度和经度)?

1 个答案:

答案 0 :(得分:0)

您可以使用conditional template检查是否存在某个值。

所以,它将是:

 <template if="{{latitude}}">
   <template if="{{longitude}}">
    <gis-service id="gservice" latitude="{{latitude}}" longitude="{{longitude}}">Use lat and long here</gis-service>
  </template></template>