我正在通过Eric扩展这个伟大的元素:https://github.com/ebidel/geo-location
我添加的一个功能是我根据返回的lat和lng值执行一个聚合物-ajax请求,仅此一行:
<polymer-ajax auto handleAs="json" response="{{data}}" url="http://service/?latlng={{latitude}},{{longitude}}></polymer-ajax>
返回一些数据。目前有两个请求发送到此服务,一个失败(因为没有传入lat&amp; lng值),第二个请求成功。
如何强制我的ajax调用等待lat和lng值存在? (以后就像行为问题这样的承诺)
答案 0 :(得分:5)
延伸离开!
如果没有看到代码,我怀疑这里发生的是<polymer-ajax>
获取网址,但它当然不完整。这仍然会触发元素的内部urlChanged
处理程序。由于您有auto
,因此请求是使用虚假值。
我按照Ben建议取消auto
并使用事件地理位置火灾:
<geo-location latitude"{{latitude}}" longitude="{{longitude}}" on-geo-response="{{onLatLng}}"></geo-location>
<polymer-ajax id="ajax" handleAs="json" response="{{data}}" url="http://service/?latlng={{latitude}},{{longitude}}></polymer-ajax>
并处理事件:
onLatLng: function() {
this.$.ajax.go();
}
BTW,请改用<core-ajax>
。 core- *元素是我们支持前进的元素。
github.com/polymer/core-ajax