【问题标题】:Polymer callback as an attributePolymer 回调作为属性
【发布时间】:2017-09-05 16:45:04
【问题描述】:

不久前我注意到 Iron-ajax 使用属性on-response="callbackFn" 在收到响应后执行。

我的问题只是它是如何工作的?

我有类似的情况,我想创建一个能够将回调作为属性的组件,但我不知道该怎么做。

我注意到了两件事

  1. 触发后,函数会正确绑定到它所来自的 Polymer 元素。
  2. “callbackFn”是函数的名称。不是聚合物粘合剂。

所以我认为 Iron-ajax 必须在后台做一些诡计来绑定函数名引用的给定函数。当我查看源代码时,虽然我没有看到对“响应”属性的任何处理。没有,zilch,nada。什么给了?

我可以看到有一个 _boundedHandleResponse,但该属性似乎在任何时候都没有绑定到 on-response 函数。

source

【问题讨论】:

    标签: polymer polymer-1.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-event 注释添加事件侦听器。例如点击,点击。因此,每次发送response 时,它都会调用定义为on-response="callbackFn" 的函数,该函数将调用“callbackFn”函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多