【问题标题】:Polymer iron-ajax/iron-request won't fire聚合物 iron-ajax/iron-request 不会触发
【发布时间】:2016-12-28 18:34:18
【问题描述】:

我正在尝试使用 iron-ajax 发出请求。

我的代码如下所示:

<link rel="import" href="../bower_components/iron-ajax/iron-ajax.html">

<iron-ajax
  id="fetch"
  url="myapi.com/resource"
  method="GET"
  content-type="application/json"
  handle-as="json"
  on-response="storeData"
  debounce-duration="300" auto>
</iron-ajax>

我一直收到此错误,并已链接到以下来源。

未捕获的类型错误:request.completes.then 不是函数

https://github.com/PolymerElements/iron-ajax/blob/master/iron-ajax.html#L447

当我将生成的 iron-request 对象 request.completes 记录到控制台时,我看到了以下对象。

g
_callbacks: Object
_pendingCallbacks: Object
ctx: null
promiser: ()
__proto__ : Object

我正在使用以下版本,polymer serve 在本地运行应用程序。

铁阿贾克斯:1.4.3 聚合物:1.7

【问题讨论】:

  • 你的事件处理程序的内容是什么,即storeData?另外,尝试提供一个最小(非)工作示例。
  • 谢谢,@alesc。即使 storeData 只是 storeData: function(response) { console.log(response) },错误也是一样的
  • 该错误似乎表明 iron-request 未解决(例如,未定义)。你有重现问题的 GitHub 链接或小提琴吗?
  • 您是否尝试自动生成请求?根据我的经验,我在给定的 Iron-ajax id 上使用generateRequest() 方法,以便在触发事件处理程序时生成请求(例如选择的更改)。
  • @alesc @tony19 这个plnkr.co/edit/3GATdWBbiq9P0YlKHn84 显示了一个最小的,不幸的是工作示例。令人抓狂的是它基本上是样板代码,上面的request.completes 似乎是一个有效的承诺 AFAIK。 request.completes 的设置器在这里:github.com/PolymerElements/iron-ajax/blob/master/…

标签: ajax polymer polymer-1.0


【解决方案1】:

对此的糟糕解决方案是我遇到了命名冲突。我在这个项目中使用bloodhound.js,最近从手动下载的文件切换到凉亭。在 bower 上注册的 bloodhound 不是 twitter 写的库。它是一个完全不同的、一星、零分叉的库,最后一次更新是在 2014 年,恰好在全局范围内覆盖了 Promise 原型:(

感谢大家的关心和帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2015-07-29
    • 1970-01-01
    • 2016-12-04
    相关资源
    最近更新 更多