Polymer:如何在配置文件中存储REST API基本URL

时间:2017-05-06 12:23:29

标签: rest polymer polymer-1.0 iron-ajax

我使用聚合物入门套件。我必须在不同的HTML页面中进行许多API调用,并且对于每个API调用,我都使用" iron-ajax"为了这个' url'属性我正在分配REST API URL。

网址就像" https://XXXXX.in/YY/YY/YY" ,此处基本URL XXXXX对于所有API调用都是相同的,YY将更改。因此,如何将基本URL XXX存储在一个配置文件中,并在所有页面中访问该值为所有" iron-ajax"?在哪里我应该访问基本URL,它是在聚合物的准备好了#39;所有页面都有功能吗?

1 个答案:

答案 0 :(得分:6)

选项1

在Polymer中,您可以将值存储为属性。如果您将基本URL作为属性放在节点树的顶部(在第一个父元素中),则可以将其传递给任何子元素(然后它们可以将其向下传递)。

您的首要元素:

<link rel="import" href="./child-el.html">
<dom-module id="main-el">
    <template>
        <child-el base-url="[[baseUrl]]"></child-el>
    </template>
</dom-module>
<script>
    Polymer({
        is: 'main-el',
        properties: {
            baseUrl: {
                type: String,
                value: 'https://XXXXX.in'
            }
        }
    });
</script>

孩子:

<dom-module id="child-el">
    <template>
        <iron-ajax url="[[baseUrl]]/YY/YY/YY"></iron-ajax>
    </template>
</dom-module>
<script>
    Polymer({
        is: 'child-el',
        properties: {
            baseUrl: {
                type: String
            }
        }
     });
 </script>

选项2

您可以将所有ajax调用放在一个不会在屏幕上呈现任何内容的元素中,并将该元素包含在您需要的任何位置。

<link rel="import" href="./api-handler.html">
<dom-module id="main-el">
    <template>
        <api-handler id="api-handler"></api-handler>
    </template>
</dom-module>
<script>
    Polymer({
        is: 'main-el',
        attached () {
            this.$['api-handler'].makeRequest();
        }
    });
</script> 

选项3

将baseUrl属性存储在Polymer behavior中,并将其包含在元素中。

选项4

您可以将值附加到全局可访问的窗口对象。你的config.html看起来像是:

<script>
    (function (Config) {
        Config.BASE_URL = 'https://XXXXX.in';
    })(window.Config = window.Config || {});
</script>

然后在index.html中导入它:

<link rel="import" href="./config.html">

..和Config.BASE_URL将在您的所有元素中提供。