作为属性的聚合物回调
Polymer callback as an attribute
不久前我注意到 iron-ajax 使用属性 on-response="callbackFn"
在收到响应后执行。
我的问题只是这是如何工作的?
我有类似的情况,我想创建一个能够将回调作为属性的组件,但我不知道该怎么做。
我注意到两件事
- 触发后,该函数会正确绑定到它来自的 Polymer 元素。
- "callbackFn" 是函数名。不是聚合物结合。
所以我假设 iron-ajax 一定在后台做了一些诡计来绑定由函数名引用的给定函数。当我查看源代码时,虽然我没有看到对 'on-response' 属性的任何处理。 none,zilch,nada。什么给了?
我可以看到有一个 _boundedHandleResponse
,但是 属性 似乎在任何时候都没有绑定到 on-response
函数。
_boundedHandleResponse
是一个函数,其值取决于 _handleResponse
函数。
_boundHandleResponse: {
type: Function,
value: function () {
return this._handleResponse.bind(this);
}
}
因此,如果您检查 _handleResponse
函数,则会有一个 'response' 事件使用代码调度:
this.fire('response', request, {
bubbles: this.bubbles,
composed: true
});
在聚合物元素中,我们使用 on-event 注释添加事件侦听器。例如点击,点击。因此,每次调度 response
时,它将调用定义为 on on-response="callbackFn"
的函数,该函数将调用 "callbackFn" 函数。
不久前我注意到 iron-ajax 使用属性 on-response="callbackFn"
在收到响应后执行。
我的问题只是这是如何工作的?
我有类似的情况,我想创建一个能够将回调作为属性的组件,但我不知道该怎么做。
我注意到两件事
- 触发后,该函数会正确绑定到它来自的 Polymer 元素。
- "callbackFn" 是函数名。不是聚合物结合。
所以我假设 iron-ajax 一定在后台做了一些诡计来绑定由函数名引用的给定函数。当我查看源代码时,虽然我没有看到对 'on-response' 属性的任何处理。 none,zilch,nada。什么给了?
我可以看到有一个 _boundedHandleResponse
,但是 属性 似乎在任何时候都没有绑定到 on-response
函数。
_boundedHandleResponse
是一个函数,其值取决于 _handleResponse
函数。
_boundHandleResponse: {
type: Function,
value: function () {
return this._handleResponse.bind(this);
}
}
因此,如果您检查 _handleResponse
函数,则会有一个 'response' 事件使用代码调度:
this.fire('response', request, {
bubbles: this.bubbles,
composed: true
});
在聚合物元素中,我们使用 on-event 注释添加事件侦听器。例如点击,点击。因此,每次调度 response
时,它将调用定义为 on on-response="callbackFn"
的函数,该函数将调用 "callbackFn" 函数。