不久前,我注意到,一旦收到回复,iron-ajax会使用attribut on-response="callbackFn"
来执行。
我的问题是这是如何运作的?
我有类似的情况,我想创建一个能够将回调作为属性的组件,但我无法弄清楚如何做到这一点。
我注意到的两件事
所以我认为iron-ajax必须在后台做一些技巧来绑定函数名引用的给定函数。当我查看源代码时,虽然我没有看到任何处理响应'属性。没有,齐尔奇,纳达。什么给了?
我可以看到有一个_boundedHandleResponse
,但该属性似乎在任何时候都没有绑定到on-response
函数。
答案 0 :(得分:1)
_boundedHandleResponse
是一个值,取决于_handleResponse
函数。
_boundHandleResponse: {
type: Function,
value: function () {
return this._handleResponse.bind(this);
}
}
因此,如果您检查_handleResponse
功能,则会有一个“响应”'使用代码调度的事件:
this.fire('response', request, {
bubbles: this.bubbles,
composed: true
});
在聚合物元素中,我们使用on- 事件注释添加事件侦听器。例如点击,点击。因此,每次调度response
时,它都会调用on-response="callbackFn"
上定义的函数,该函数将调用" callbackFn"功能