承诺使用聚合物

Tam*_*mas 2 javascript ajax polymer

我正在通过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和lng值),第二个成功.

如何强制我的ajax调用等待lat和lng值存在?(以后就像行为问题这样的承诺)

ebi*_*del 5

延伸远!

没有看到代码,我怀疑这里发生的是<polymer-ajax>获取URL,但它当然是不完整的.这仍然会触发元素的内部urlChanged处理程序.既然你有auto,那么请求就是伪造的.

我会auto像Ben建议的那样起飞并使用事件地理位置火灾:

<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>
Run Code Online (Sandbox Code Playgroud)

并处理事件:

onLatLng: function() {
  this.$.ajax.go();
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下,请<core-ajax>改用.core-*元素是我们支持前进的元素.

github.com/polymer/core-ajax