Polymer 1.x iron-ajax - 如何以编程方式更改响应?

时间:2016-07-01 19:38:08

标签: polymer polymer-1.0

我想在一些服务器调用中使用一个iron-ajax元素,并且需要更改on-response参数,类似于更改url参数。我没有办法做到这一点......任何人都知道怎么做?

这是我的铁阿贾克斯元素:

<iron-ajax id="xhr" handle-as="json" method="GET">
</iron-ajax>

在我的代码中,我希望能够:

this.$.xhr.url = "server.com/getX";
this.$.xhr.onResponse = "handleX";

然后:

this.$.xhr.url = "server.com/getY";
this.$.xhr.onResponse = "handleY";

以上不起作用,我无法弄清楚如何做我想做的事。我也试过这个。$。xhr.onresponse,这个。$。xhr.response和其他几个但没有用。感谢所有帮助。

1 个答案:

答案 0 :(得分:2)

没有<iron-ajax>.onResponse属性。 on-response属性是用于注册事件处理程序的Polymer语法,response是一个事件。要强制切换response听众,您需要使用Polymer's API

Polymer({
  ...
  _switchAjaxListener: function() {
    this.unlisten(this.$.xhr, 'response', '_oldListener');
    this.listen(this.$.xhr, 'response', '_newListener');
  }
);

注意第三个参数是事件处理程序的方法名称(string而不是处理程序function本身)。