Javascript 创建我自己的铁元素

Javascript 创建我自己的铁元素,javascript,polymer,polymer-1.0,Javascript,Polymer,Polymer 1.0,我想创建我自己的iron ajax元素,这做了iron ajax做的事情,但还有一点,在请求中添加一些头,目前我总是通过数据绑定将头添加到iron ajax的headers属性,但我不想在我构建的每个元素上编码,我希望iron ajax元素自己完成这项工作 有没有办法扩展iron ajax 编辑: 我在自定义ajax元素中触发一个事件,并在使用自定义ajax元素的元素中添加了一个侦听器。这是一个好的解决方案吗?您可以将嵌入到自己的组件中,并在和之间来回转发属性 我原以为您会在的事件处理程序中

我想创建我自己的iron ajax元素,这做了iron ajax做的事情,但还有一点,在请求中添加一些头,目前我总是通过数据绑定将头添加到iron ajax的headers属性,但我不想在我构建的每个元素上编码,我希望iron ajax元素自己完成这项工作

有没有办法扩展iron ajax

编辑:

我在自定义ajax元素中触发一个事件,并在使用自定义ajax元素的元素中添加了一个侦听器。这是一个好的解决方案吗?

您可以将
嵌入到自己的
组件中,并在
之间来回转发属性



我原以为您会在
的事件处理程序中启动
em response'
,但现在您只有
(可能这是您的修复程序的一部分)。我想知道你为什么要发射“em-response”。我只会使用
'response'
,否则
将不起作用(它会侦听
response
)。是的,这是修复的一部分,我会在on response eventhandler中触发“em response”。我尝试触发'response'而不是'em response',但这导致了“polymer.html:1315 Uncaught TypeError:invalize invocation”嗯,可能是有人在侦听
response
时,期望使用不同的事件有效负载值类型。我让它触发'response'事件而不是'em response',然后它不知怎么工作了。只是想让你知道:)
<template>
    <iron-ajax
            auto
            url="[[url]]"
            handle-as="json"
            debounce-duration="1000"
            on-response=""
            headers="[[headers]]"
    ></iron-ajax>
</template>
<script>
    (function() {
        'use strict';

        Polymer({
            is: 'em-ajax',

            properties: {
                headers: {
                    type: Object,
                    computed: 'computeHeaders(token)'
                },
                token: {
                    type: String,
                    notify: true,
                    value: "asdf"
                },
                url: {
                    type: String
                }
            },
            computeHeaders: function() {
                return {'Authorization' : 'Bearer {' +  app.accessToken + '}'};
            },
            handleRequest: function(request) {
                console.log("handling request", request);
                request.header = this.computeHeaders();
            }


        });
    })();
</script>
    <em-ajax
            url="http://api.asdf.safd.sdf/profile"
            on-response="handleProfile"
    ></em-ajax>
                this.fire('em-response', {event: event, request: request});
<dom-module id="fancy-ajax">
  <template>
    <iron-ajax ...></iron-ajax>
  </template>
</dom-module>